Opposing arrows distinguish a consumer requesting its provider through Requires from the provider’s READY=1 startup boundary releasing the ordered consumer. Requires and After have different directions and purposes.

systemd dependencies separate activation, ordering, and readiness

A dependency graph needs to express more than “start the database first.” One relationship decides whether another unit is pulled into the transaction; another orders the jobs; the service type defines when startup has finished. Application readiness is a further promise that the program must actually fulfill. Confusing these layers produces a boot sequence that looks ordered while the dependent service still starts too early. ...

February 18, 2028 · 6 min · XB Field Notes