Standards

S001 — Bus-Driven Architecture

ServiceBase publishes identity + heartbeat to MQTT on boot.

S001 — Bus-Driven Architecture (v2026-08-02T101544Z-ab2bbdebf5) 2026-08-01 | ServiceBase publishes identity + heartbeat to MQTT on boot. 1 - ServiceBase Initialization ServiceBase.__init__ daemon/src/service_base.py:351 service_name version _resolve_role _VALID_ROLES _get_role_from_config role.json _environment KEVIN_ENVIRONMENT dev test prod service_name,… 2 - MQTT Connection and Identity Publishing connect_and_run aiomqtt.Client hostname port _emit kv/service/{service}/identity retain=True QoS 1 MQTT client 3 - Heartbeat Loop _heartbeat_loop asyncio.sleep heartbeat_interval_s _emit _emit kv/service/{service}/heartbeat QoS 1 heartbeat payl… 1. ServiceBase.__init__ initia… 2. _resolve_role determines th… 3. _environment fetches the en… 4. connect_and_run establishes… 5. _emit publishes retained id… 6. _heartbeat_loop starts publ… Identity Payload {"service": "daemon", "version": "2026-05-23T074530Z-a3f8e2c", "role": "owner", "status": "starting", "environment": "de… Heartbeat Payload {"service": "daemon", "version": "2026-05-23T074530Z-a3f8e2c", "role": "owner", "status": "healthy", "uptime_seconds": 3… The source does not show any implementation for VersionVerifier or AutoHealer, so they are not included in the dataflow diagram. Legend actor = initiates work · process = code path · store = state on disk · bus = durable queue · dashed = separate process cyan = request flow · pink = state read/write · dashed green = pull / return path · red = refusal

Provenance

This drawing is generated, not drawn. It is rebuilt from the source files below, so when they change the picture changes — a diagram here cannot quietly describe a system that no longer works this way.

Owner
Standards
Slug
s001-bus-driven-architecture
Rendered
2026-08-02T101544Z
From commit
ab2bbdebf5
Watches
3 paths
  • daemon/src/service_base.py
  • daemon/docs/standards/BUS_DRIVEN_ARCHITECTURE.md
  • daemon/docs/VERSIONING_BUS.md