microservices

  • Observability is three things, and logs are one

    Forty gigabytes of logs a day and no answer to “is checkout slow”. Metrics, logs and traces answer different questions, and logs were doing all three badly.

  • A trace is a tree; a log line is a point

    Logs answer what happened and traces answer what a request did, and a request that touches six services is a shape logs cannot represent. The value is entirely…

  • Two writers on one schema cannot be released independently

    Two deployables reading and writing the same tables cannot change their schema independently and fail together, which removes every property a separate service was supposed to provide. The…

  • Kubernetes is not the answer to this question

    The question was how to deploy four services, and the answer arrived before it. Naming what you actually need — scheduling, health, rolling deploys, secrets.

  • Two services, one database, and the year it took to separate them

    Two deployables writing the same tables is one service with extra steps. Deciding who owns them is the whole decision, and the intermediate state lasts.

  • The strangler pattern needs a seam that already exists

    Routing some URLs to a new application and the rest to the old one is the whole technique, and it works only where a clean seam is already…

  • A shared database between two services is one service

    Two deployables reading and writing the same tables cannot be released independently, cannot change their schema independently and fail together — which is every property a service was…

  • Correlation ids cost nothing and answer everything

    One identifier, generated at the edge, attached to every log line the request produces in every service — and an incident becomes one query instead of four SSH…

  • A circuit breaker before the third-party outage

    A payment provider was slow and the whole site went down with it. A timeout bounds one request; it does nothing about how many are waiting at once.

  • An event-driven seam between two services

    The synchronous call between two services was the reason both were down. Publishing an event decouples their availability — and makes eventual consistency a business decision.