Ordering the chaos - cleaning logs and ordering events in microservices
summary
Explains why wall-clock timestamps fail (leap seconds, DST, TZ DB drift) and shows a .NET proof-of-concept: generate a correlation-id, propagate it and a Lamport counter via correlation-id headers, use Interlocked increment and max-on-receive to order a single workflow; upgrade to vector clocks to compare across nodes; notes Google TrueTime ≈ 7 ms uncertainty, consensus needs majority/2K+1 for Byzantine faults, and Raft leader election tradeoffs — code and slides are available and the simple HTTP/header approach works for per-request ordering.
AI-written summary · about
chapters (19)
- 0:00Start
- 6:00What is timezone
- 8:31Timezones change
- 11:58Leap second
- 14:57UTC is not a silver bullet
- 21:43Network Time Protocol (NTP)
- 22:29Other approaches
- 24:45Lamport timestamp
- 30:44Implementation
- 32:56Logger
- 34:28Memory based Correlator
- 36:27Step 4
- 37:20Important remarks
- 40:40Vector clock Time
- 42:57Byzantine generals
- 45:37k-fault tolerance
- 47:17Consensus problem
- 53:21Summary
- 54:28References
related talks
01h 02mOrdering the chaos - cleaning logs and ordering events in microservices
39mKeeping Time in Real Systems
14mLightning Talk: Beyond NTP: High-accuracy clocks for distributed observability
42mHow to Have your Causality and Wall Clocks, Too
01h 03mAdventures in Spacetime
26mReal-Time Decision Making in Financial Networks
34mThe Holy Grail of Systems Analysis: from What to Where to Why
47mComplex event flows in distributed systems
