On one host, Compose 514 is enough. Across three hosts, someone must answer these questions every minute of every day:
Placement. Which host has room for another API replica?
Self-healing. When a host dies, which containers were on it, and where should they run now?
Discovery and load balancing. Replicas change IP addresses; clients need one stable name.
Rollouts. Replace the image a few replicas at a time, stop on failed health checks, roll back on request.
Configuration and scaling. Get the database password to every replica; follow traffic up and down.
An orchestrator answers all of them with one idea: you declare the desired state ("three API replicas of image 1.3, 256 MiB each") and it keeps comparing that with the actual state, acting on every difference.

The loop never finishes: a host failure at 3 a.m. is just another difference to correct. The Reconciliation Loop shows how Kubernetes 5,150 implements it.