Writing 18 JUN 2026 7 min read
The diagram is the deliverable If four engineers draw the same system four different ways, you do not have a system yet.
Architecture Craft
Read the notes Diagram 20 MAY 2026 10 components
Order pipeline, after the rewrite Transactional outbox in front of the event bus, so an order is never accepted without the events that follow it.
CLIENT EDGE WRITE PATH FAN-OUT CONSUMERS POST /orders one transaction relay polls payment.settled Storefront Web + iOS API gateway Auth · rate limit · dedupe Order service Validates and persists intent Orders Postgres · source of truth Outbox table Same transaction as the write Event bus Kafka · order.* Payments Inventory Notifications Warehouse read model Rebuilt from the log OpenEvent-driven Outbox Kafka
Writing 02 APR 2026 9 min read
Idempotency is a product decision Retries are cheap. Deciding what a duplicate actually means to the business is not.
Distributed systems APIs
Read the notes Writing 11 FEB 2026 6 min read
Caches lie about what you measure A 98% hit rate looked like a win right up until we plotted the misses against revenue.
Performance Distributed systems
Read the notes Writing 27 NOV 2025 5 min read
Shooting film made me a better engineer Thirty-six frames is a constraint, and constraints are the only thing that ever improved my judgement.
Essay Photography
Read the notes Writing 05 SEPT 2025 8 min read
On-call is a design review that arrives late Every page is feedback on a decision somebody made months ago, usually with good intentions.
Reliability Teams
Read the notes Diagram 14 AUG 2025 8 components
Read path for a multi-region catalogue Three layers of cache with an explicit freshness budget at each one, and a single writer region.
READER EDGE REGION DATA REFRESH miss miss replication change stream pre-warm Browser Anywhere Edge cache Stale-while-revalidate · 60s BFF Composes the page payload Regional cache Redis · hot keys, 5m Catalogue API Region-local Read replica Same region Primary eu-west · only writer Indexer Pre-warms on change OpenCaching Multi-region Latency
Diagram 09 MAR 2025 7 components
Session and identity, end to end Claims are resolved once at the edge and passed down, so no product service ever handles a raw credential.
CLIENT EDGE IDENTITY PRODUCT resolve code exchange issue / rotate claims Browser / iOS Holds an opaque cookie Edge middleware Cookie → signed claims OIDC provider Google · Apple · SSO Auth service Issues and rotates sessions Session store Redis · sliding 30m Product APIs Trust the claims header only Audit trail Append-only OpenIdentity OIDC Security