โ Back to Documentation Home
This section contains domain models, architecture patterns, and module specifications for the Event Service Agent system.
Each module follows hexagonal architecture with clear boundaries:
HTTP API layer for accepting service call requests.
/service-calls)Time-based scheduling and notifications.
Service call lifecycle orchestration.
External HTTP service call execution.
All modules adhere to these constraints (enforced in code reviews):
Only Orchestration writes to domain tables. All other modules consume via events.
Modules query only their own tables (enforced by ports).
All inter-module communication via EventBusPort (message broker).
All command/event handlers must be idempotent; keyed by (tenantId, serviceCallId).
Every query must filter by tenant_id; every message must carry tenantId.
Note: Message schemas shown in messages.md are wire format contracts for documentation. The source of truth for runtime validation is the Effect Schema implementations in each moduleโs domain/ folder. See ADR-0011 for schema strategy.