Once an app has a proxy, an API, a database and a worker, you have to handle start order, readiness, scaling and who may talk to whom. Compose features like healthchecks, depends_on conditions, separate networks and restart policies cover these. Reach for them when your API crashes because it started before the database was ready. A plain depends_on only orders startup, so add a healthcheck and still retry connections in the app.