Architecture
System Context
The User Service is a set of AWS Lambda functions behind an IAM-authenticated API Gateway, with DynamoDB and RDS PostgreSQL as its data stores. It serves synchronous requests from FloatMe backend services, the global FloatMe API Gateway and the Cloudflare Workers in the edge repo (signup, access codes, Zendesk webhook), and it consumes and produces events over Kinesis, SQS and DynamoDB Streams. Event routing detail is drawn on the Events page.
Components
| Component | Trigger | Purpose |
|---|---|---|
|
API Gateway |
REST API (54 operations): users, memberships, access codes, tags, consent, KYC, bans, data deletion — see API Specification |
|
Kinesis |
Bans the user on a |
|
Kinesis |
Handles |
|
DynamoDB Streams on |
Forwards |
|
SQS |
Janitor: Plaid item removal, Auth0 block, Array cleanup, GDPR vendor signals — Janitor |
|
API Gateway (webhooks gateway, |
Verifies the Typeform HMAC signature and enqueues the payload on |
|
SQS |
Closes the account named in a confirmed "FloatMe Cancellation Process" form — Typeform cancellation |
|
API Gateway (webhooks gateway, |
Verifies the Tally signature and stores the raw survey response — Survey response |
|
SQS |
Stores app metric events in the |
|
SQS |
Sends the access-code SMS through Twilio — SMS delivery |
Storage
-
PostgreSQL Schema —
FloatMeAPI_usermodel, the user profile table (RDS main + read replica) -
DynamoDB Tables — the
{env}-user-service-userssingle table and the us-east-1 tables
External Dependencies
| Service | Role |
|---|---|
Auth0 |
Requires MFA at signup; blocks and unblocks accounts; changes email; removes SMS enrollments; reports email-verified state |
Payments Service |
Debit cards, the prorated upgrade charge and refund, bank-account hash check for related accounts, marketing locks (released on closure), debit-card deletion on cancellation |
Twilio |
Delivers the access-code SMS, called by the sms-worker Lambda only |
Subscription Service |
Activates, reactivates, pauses (next collection date), upgrades, downgrades and bans subscriptions; billing details for proration |
Float Service |
Float payback on reactivation; float ban |
Transactions Service |
Plaid items (list, remove, persist), Plaid Layer item creation at signup, KYC sessions |
Underwriting Service |
Underwriting recalculation after activation and reactivation |
Insight Service |
Income verification info returned with the user profile |
Admin API |
Ban audit note on the user’s backoffice record |
Entitlements Service |
Array cleanup scheduled by the janitor |
Castle |
Risk scoring of self-service profile updates — Castle |
GrowthBook |
Tier configuration, pause-eligible states, GDPR kill switch — Feature Flags |
Segment |
Notification events (cancellation, pause, unpause, reactivation receipt, consent, first debit card) — Vendor events |
Iterable |
Personal-info-updated events, upgrade receipt, GDPR forget-user, SMS opt-in subscription |
AppsFlyer |
|
Zendesk |
Closes and comments on "Delete My Data" tickets — Zendesk webhook |
Intercom Fin |
Audience of the HMAC-signed identity JWT issued by |
Datadog |
Metrics and SLOs — Monitoring |