Events
Event contracts only — the flows that publish and handle them live on the domain pages.
Published
| Channel | Event | Published by | Payload | Consumers |
|---|---|---|---|---|
EventBridge |
|
API |
bare user ID string |
This service’s own rule runner (full rule re-run) |
EventBridge |
|
Rule runner, after all outcomes are saved |
|
Result runner |
Segment |
|
Rule runner, after a CFI limit change persists |
|
Analytics — CFI |
Segment |
|
Float-created handler, when the deciding evaluation has an MLResult and the user has a Firebase app instance ID |
|
Google Analytics ad targeting by score band — Rule Engine |
Iterable |
|
Result runner, when the user passed underwriting and an early advance was granted |
keyed by email; |
User notification — Early Advance |
Source: pkg/api/update_user.go, pkg/rulerunner/runner.go, pkg/floatcreated/handler.go,
pkg/rulerunner/increase.go, pkg/resultrunner/runner.go
Consumed
Each EventBridge rule routes matching events from the default bus to one SQS tap consumed by one Lambda. Handlers do not branch on event name — routing is entirely pattern-driven; the rule runner records the event type as the run’s invocation type and runs the same full evaluation for every trigger.
| Event (detail-type) | Source filter | Handled by | Flow |
|---|---|---|---|
|
|
Rule runner (full rule run) |
|
|
|
Rule runner (full rule run) |
|
|
|
Rule runner (full rule run) |
|
|
|
Result runner |
|
|
|
Float-created handler |
|
|
any source |
Profile handler |
Source: deploy/main.tf (EventBridge rules)