-
ServiceABC +BaseService(status tracking,send,on_start/on_stophooks);ServiceStatusenum. -
ServiceBus: register /register_and_start_service(s)/start_all_registered;start_service/stop_service/unregister_service(threaded). - Discovery:
get_service(name),find_running_services(type_or_predicate),running_services()/registered_services(),is_registered/is_running. -
await_running(timeout, *names). -
pause/unpause/restart/shutdown/graceful_shutdown; context manager. - Per-service
ServiceStatustracking + listeners;UNSTABLE-> restart. - Control commands via
headers["command"]+headers["service"]. - Reusable
Daemonbase (hooks +launch). -
python -m service_busdemo; test suite;README.md,DESIGN.md.
-
register_and_start_service_sync(service, timeout)— register + start + await. - Real dependency ordering for start using
depends_on()(topological sort). - Factory registration (
register(name, lambda: S())) sodepends_on()can auto-register and control-commandregisterworks over the bus. - Readiness gate: hold delivery to a service until it reports
RUNNING. - Health policy beyond "UNSTABLE -> restart": restart backoff, give-up threshold.
- Control-command responses (ack/nack back to the sender).
- Surface seda-bus
stats()per service. - Free-threaded (
python3.14t) test run in CI alongside the GIL build. - Publish to PyPI (currently a path dependency on
../seda-bus-python). -
[tool.hatch.metadata] allow-direct-references+ aseda-bus @ file://pin so a freshpip install -e .resolves the sibling without a separate step.