Adds accounting-service PATCH/archive, fiscal helpers, COA templates and setup status, plus SuperApp Accounting UI (DS, scoreboard, masters, vouchers, ledger, ops modules) with session refresh and HTTPS public API URLs. Co-authored-by: Cursor <cursoragent@cursor.com>
1.1 KiB
1.1 KiB
Event-Driven Architecture
Envelope
All events use shared.events.EventEnvelope:
{
"event_id": "uuid",
"event_type": "tenant.created",
"aggregate_type": "tenant",
"aggregate_id": "uuid",
"tenant_id": "uuid|null",
"source_service": "core-service",
"payload": {},
"occurred_at": "ISO-8601"
}
Outbox → Inbox (ADR-006)
- Producer writes business row +
outbox_eventsin one transaction. - Worker (
process_outbox_events) publishes pending rows. - Consumer inserts
inbox_eventskeyed byevent_id(idempotency) then handles payload.
Naming
{aggregate}.{past_tense_verb} — e.g. tenant.created, subscription.updated, user.registered.
Catalog
Canonical list → event-catalog.md
Future
Replace in-process/Celery-only publish with a real message bus without changing envelope or outbox ownership.