Running it in productionintermediate
A healthcheck is how the platform knows to restart your container, and running as a non-root user is how a bug stops being a breach.
Ordering calls Billing and the two sets of logs cannot be joined. Make one request carry one identity across the boundary, add a span for the work that matters, and hand the trace id back so a support ticket can quote it.
One request produces one trace across both services, and the id on the response finds it.
Published in full, before you start — every point is one of these and there is nothing else.
A healthcheck is how the platform knows to restart your container, and running as a non-root user is how a bug stops being a breach.
Splitting a system into services is easy; the decision that matters is what they are allowed to know about each other, and the answer is a shared contract and an event rather than a reference and a call.
Network calls fail. Code that assumes they succeed turns a slow connection into a blank screen with no explanation.