lib-streaming. Every event travels in the shared envelope: ce-type names the event as studio.lerian.<resource>.<event>, ce-subject carries the aggregate id, ce-tenantid the owning tenant, and ce-schemaversion the payload version — 1.0.0 for every event below.
ce-source comes from STREAMING_CLOUDEVENTS_SOURCE, and Lender enforces the value lender when streaming is enabled — booting with any other value fails. Topics derive from the source (see Topic naming), so every emitted event lands on lender.<resource>.<event>.
Every event in Lender’s catalog is outbox-backed: the event row is written in the same database transaction as the state change it reports, and a relay publishes committed rows to Kafka, retrying through broker outages. The catalog does not allow this policy to be weakened per deployment. Money amounts and rates cross the wire as decimal strings, never floats. Lender serves its full event catalog at GET /api/v1/streaming/manifest.
Loan lifecycle events
Servicing events
Collection events
The four collection-payment events share one payload schema; optional fields fill in per flow.BR jurisdiction events
Consignado commands emitted
Commands Lender sends to the Consignado rail. They keep Lender’s namespace — Consignado subscribes to theselender.* topics (see Consignado events).
studio.lerian.consignado_margin.requested (topic lender.consignado_margin.requested) is declared in the catalog and in the manifest, but no Lender flow emits it yet — treat it as a contract reservation, not live traffic. Consignado’s fact events (studio.lerian.consignado_proposal.accepted, studio.lerian.consignado_averbacao.confirmed, and the rest) also appear in Lender’s manifest for contract documentation, but their producer is the Consignado rail — see the Consignado events page for those payloads.
Events consumed
Consumers are opt-in per deployment: each has an enable flag (default off) and fails at boot when enabled without a reachable broker.
The
consignado-gw.consignado_proposal.accepted fact — the auction-win handoff — has a handler implemented but not yet wired into any deployment: the leilão handoff is not live end to end. It is listed here so subscribers know the contract exists; check the streaming manifest of your deployment before depending on it.
