NETZlive in production
Backs Act 2: how we made it real.
Questions to answer
Section titled “Questions to answer”- Service registration via OTP start phases. Where it happens, and what “ready” means.
- The race condition — a service advertised before its dependencies loaded. Date, symptoms, fix. Reconstruct from the commit or PR, not from memory.
defdelegate_api. What the macro expands to: node lookup, RPC, error wrapping.- Versioned contracts. How a service declares its version and how a client requires one.
- The silent contract break —
scenario_id→scenario_ref. Is this a real incident or a composite? The talk must not present a composite as a single event. NodeErrorvsRPCError, and where retry config lives.- Two-tier messaging. The RPC-vs-Kafka rule, and why
Phoenix.PubSubstays local.
Where the evidence lives
Section titled “Where the evidence lives”netzlive.cluster/lib/— the wrapper library.redispatch/and the other services, for real call sites.- Git history and incident notes for the war stories.