event

Commit Finalized

Published when a forecast submission is locked in for the cycle.

Event

Event Overview

Emitted alongside Commit Submitted on the same submit call. Where Commit Submitted records the act of submitting, this one records that the value is now the settled figure for that person, quarter, cadence and revenue type.

Envelope

FieldValue
Bus{env}-rio-events (but see the service page - this repo defaults to rio-commit-events)
sourcerio.commit (api/events/schemas.py:11)
detail-typeCommit Finalized (api/events/schemas.py:22)
detail.event_namerio.commit.commit.finalized
detail.entity_typecommit
detail.actionfinalized
Emitted atapi/services/forecast_service.py:1880-1885

What the payload carries

Only the audit envelope. The rich domain fields (amounts, breakdowns, quarter labels) are dropped before publishing - see the service page. before and after are always null.

Who consumes it

Only the Audit Service, through its catch-all rule matching any source beginning with rio. No service subscribes to it specifically.

Payload Schema

Event-driven architecture documentation: RIO

JSON Schema

19 properties

Published when a forecast submission is locked in for the cycle. Envelope built by _enrich_event_detail (rio-commit-service/api/events/eventbridge.py:36-96) and published on source `rio.commit` with detail-type `Commit Finalized`.

event_idstring<uuid>
required
event_namestringconstant: rio.commit.commit.finalized
required
source_servicestringconstant: rio.commit
required
tenant_idstring
required
domainstringconstant: commit
required
subdomainstringconstant: commit
entity_typestringconstant: commit
required
entity_idstring
required

The forecast submission id.

actionstringconstant: finalized
required
statusstring
required
actor_typestringconstant: user
required
actor_idstring
required
occurred_atstring<date-time>
required
correlation_idstring | null

Taken from EventContextMiddleware contextvars.

request_idstring | null
beforenull

Always null - the domain models never populate it.

afternull

Always null - the domain models never populate it.

error_codestring | null
error_messagestring | null