Events
Event contracts for the User Service: what it publishes, what it consumes, and the vendor notifications it sends. Flow behaviour lives on the domain pages linked from each row.
Published: {env}-user-service-users (Kinesis)
The kinesis-feeder reads the DynamoDB stream of the users table and forwards two entity types; every other db_type is skipped. Errors are logged and the batch is never failed. Partition key: user_id.
| Field | Value |
|---|---|
|
|
|
|
|
The record’s |
|
|
|
|
db_type |
type values |
Written by |
|---|---|---|
|
|
User writes when |
|
Every membership write |
Source: pkg/feeder/feeder.go, pkg/events/events.go
Consumed
| Event | Source | Transport | Handled by |
|---|---|---|---|
|
Payments Service |
Kinesis |
payment-worker — Chargeback ban |
|
Subscription Service |
Kinesis |
subscriptions Lambda — Subscription worker |
|
Subscription Service |
Kinesis |
subscriptions Lambda — settlement participant cancellation |
Users table change records |
DynamoDB Streams ( |
|
kinesis-feeder — Published: |
Cleanup message |
This service (API) |
SQS |
cleanup Lambda — Janitor message |
Typeform webhook payload |
webhook-handler (Typeform) |
SQS |
typeform Lambda — Typeform cancellation |
|
EventBridge default bus |
Rule → SQS |
floatmetrics Lambda — floatmetrics |
App metric ( |
Mobile app via |
Gateway → SQS |
floatmetrics Lambda — floatmetrics |
The API Lambda holds an EventBridge client (user-service.api) but publishes nothing through it.
Vendor Events
| Event | Vendor | Payload | Sent from |
|---|---|---|---|
|
Segment |
|
|
|
Segment |
|
|
|
Segment |
|
|
|
Segment |
|
|
|
Segment |
|
|
|
Segment |
|
|
|
Segment |
Collect-on-reactivation |
|
|
Segment |
The agreement row |
|
|
Segment, AppsFlyer |
|
|
|
Iterable |
|
|
the request’s `notification_event` |
Iterable |
|
|
|
Iterable |
|
Source: pkg/notification/notifier.go, pkg/api/, pkg/subscriptions/handler.go, pkg/webhooks/typeform.go