🧩 At Scale, Time Is Your Strongest (or Weakest) Link

Published on April 24, 2025

When your system hits 1 million TPS, milliseconds aren’t enough.

Every microservice, log, and transaction wants to know: "What happened, exactly when?"

And if you're still timestamping in milliseconds — congrats — you just grouped 1,000 transactions under the same time.
That’s a challenge for:

  • šŸ” Ordering

  • šŸ” Auditing

  • 🧩 Debugging

  • šŸ“¦ Replication

  • 🧠 Observability

Let’s talk timestamp granularity, how to implement it right, and where the real cost of precision lives. Spoiler: some platforms make this a lot easier than others — and System Z might already have it built in.


🧠 How Precise Is Precise Enough?

At 1M TPS:

Granularity Time Between Events What Happens
1 second 1,000,000 µs 1 million events share a timestamp
1 ms 1,000 µs 1,000 events share a timestamp
1 µs 1 µs āœ… Unique per event
1 ns 0.001 µs Useful for high concurrency/threading

šŸŽÆ Goal: Microsecond granularity (µs) — minimum for 1M TPS
šŸ›  Bonus: Nanosecond (ns) granularity — ideal in multi-threaded or distributed systems


āš™ļø How You Implement It Depends on Your Platform

On IBM Z (z/OS / LinuxONE):

  • Hardware-level time: STCK, STCKE, ETOD

  • Precision: Micro or nano, monotonic across CPUs and LPARs

  • Available natively in COBOL, PL/I, Java, Db2, CICS, SMF

  • No additional tooling required

On x86 / Kubernetes:

  • OS/syscall based: clock_gettime() or app frameworks

  • Consistency depends on time sync (NTP, Chrony)

  • High precision often means custom tooling, sidecars, or observability layers


šŸ’ø Let’s Talk Cost

Precision has trade-offs — in storage, performance, and operational overhead.

Here’s a side-by-side look:

 

Area System Z x86 / Kubernetes
šŸ—„ļø Timestamp Format 64-bit binary (ETOD/STCK) Human-readable formats (e.g., ISO-8601) often exceed 64 bits
āš™ļø CPU Overhead Lightweight, hardware-level Syscalls or library functions
šŸ•’ Clock Sync Synchronized across LPARs and cores Requires time services (e.g. NTP, Chrony)
🧰 Tooling Built-in across platform Depends on stack (OpenTelemetry, Fluentd, etc.)
🧠 Engineering Overhead Low — precision is default Higher — needs design and validation

šŸ“Œ Worth noting: human-friendly formats like ISO 8601 are great for parsing — but can be surprisingly large in memory and storage. More bytes, more parsing effort, more overhead.

🧾 TL;DR: In many platforms, precision is something you plan for.
On IBM Z, it’s something you inherit.


🧠 So What?

  • If you're building for scale — microservices, APIs, financial apps — precision isn’t optional.

  • If you're running hybrid or cloud-native workloads, time precision can be a challenge.

  • If you're on System Z? You may already have what others are still engineering toward.

Not everything in the mainframe world is "legacy." Some of it is just already solved.


āœļø Final Thought

Whether you're building systems of record or systems of engagement, time is a shared truth. It’s how we order events, trace causality, and ensure consistency.

So ask yourself:
šŸ“‰ Is your platform helping or hindering precision?
šŸ› ļø Are you building around time — or building on top of it?

 

Written by Henri Kuiper