Turn publication on
Event publication is a deployment choice. Origination works without it.
Lender refuses to start when publication is on and any of these is wrong, so a misconfigured deployment fails at startup instead of dropping events quietly.
The wire contract
The CloudEvents source is the fixed literal
lender, and the source also namespaces every topic. A subscriber therefore reads:
For a disbursement that resolves to:
ce-specversion, ce-id, ce-source, ce-type, ce-time, ce-schemaversion, ce-resourcetype, and ce-eventtype on every message, plus ce-subject, ce-datacontenttype, and ce-tenantid when Lender has a value for them.
ce-schemaversion is 1.0.0 for every event in the catalog. The topic carries no version suffix at this schema version, so bind to the plain topic name.
Subscribe by topic. The topic is the address, and it composes from the resource type and the event type — not from an internal catalog name. Read the topic column in the tables below rather than deriving one from an event description.
The events
This page covers the 21 events of the documented credit journey. They group by the part of the journey they report. The streaming manifest declares your deployment’s whole catalog, which can carry more definitions than this page lists.
Products
Origination
Servicing
Brazil pack
Consignado privado
The consignado journey also consumes facts from the payroll-deduction gateway, on that product’s own topics. Read Consignado privado.
Durability and delivery
Every event in the catalog carries the same delivery policy. Nothing publishes straight to the broker. Lender writes the event to a transactional outbox in the same database transaction as the state change, and a dispatcher relays it afterwards. The event therefore survives a crash, and it survives a broker outage while the dispatcher retries. The retry budget is bounded. The dispatcher gives one event
OUTBOX_MAX_DISPATCH_ATTEMPTS attempts, and the default is 10. It waits OUTBOX_RETRY_WINDOW_SEC seconds between attempts, and the default is 300. Past that budget the dispatcher stops retrying the event. Raise the budget when you expect outages longer than the default window.
Events ride the same outbox as the ledger relay, so the local state change and the event commit together in a single database transaction. The posting intent joins them when the change produces one. The ledger posting lands afterwards. Read Accounting and accrual runs.
What a payload carries
The body is JSON and carries the facts of the change, not a diff. A
loan_application.disbursed body:
Check the contract at startup
GET /api/v1/streaming/manifest returns the catalog manifest: every event definition with its resource type, event type, schema version, and delivery policy. It needs a bearer token with streaming_manifest read. It reports the deployment’s whole declared catalog, not one tenant’s view.
Read it when your consumer starts. Check each event you subscribe to against the manifest: the resource type, the event type, and the schema version. That catches a name or version mismatch at startup instead of at runtime.
Next steps
Lender REST API
The base path, authentication, idempotency, and the operations by job.
Lender architecture
The parts of the service, the outbox path, and the time-driven work.
Lender in the platform
Where Lender sits next to Midaz, Access Manager, and the streaming backbone.
Consignado privado
The payroll-deduction journey and the facts it consumes.

