Architecture
System Context
The Float Service is deployed as a set of AWS Lambda functions and ECS Fargate tasks. It exposes a REST API behind API Gateway and participates in the broader FloatMe platform as both an event-driven consumer (Kinesis, SQS, EventBridge) and producer (EventBridge).
Components
| Component | Trigger | Purpose |
|---|---|---|
|
API Gateway (IAM + JWT) |
REST API — float CRUD, bypass, payback, collection history, admin; publishes |
|
SQS ( |
Webhook-triggered collection — balance and Plaid-disconnect paths |
|
Kinesis ( |
Processes ACH payment callbacks, updates float status, notifies via Segment, Iterable, AppsFlyer |
|
SQS ( |
Processes bulk float operations and data management tasks |
|
EventBridge (daily 12:00 UTC, prod only) |
Sends the daily float origination report to Slack |
|
EventBridge Scheduler (Mon–Fri 19:00 ET) |
T-1 ACH run over |
|
EventBridge Scheduler (Mon–Fri 06:00 ET) |
Due Date run over |
|
EventBridge Scheduler (Mon–Fri 05:00 ET) |
Daily Retry run over overdue floats due today or earlier |
|
EventBridge Scheduler (Thu–Fri 20:00 ET) |
Evening blind retry run — blind pinless attempts only, for the evening-cohort overdue floats |
|
EventBridge Scheduler (22:00 UTC Sun, Mon, Thu–Sat) |
Prenote run — zero-dollar USIO verification for floats due in 5 days |
Collections Architecture
The collections system uses two money-moving processing paths — scheduled and webhook-driven — both funneling into the Payments Service for execution, plus a prenote path that validates account numbers ahead of the due date without moving money. See Collections Engine for each run’s decision logic.
Storage
-
PostgreSQL Schema — the
FloatMeAPI_userloansmodelfloat table (RDS main + read replica) -
DynamoDB Tables — collection history, distributed locks, bypass records
External Dependencies
| Service | Role |
|---|---|
Payments Service |
Executes disbursements, pinless and ACH collection attempts, and zero-dollar USIO prenotes; holds the |
Underwriting Service |
Validates float eligibility and determines approved amounts and fees |
User Service |
User profile and identity data, including the name and email submitted with each prenote |
Transactions Service |
Bank balances for collection decisions; source of the webhook events the service consumes |
Insight Service |
Next-payday predictions used to compute a new float’s payback date |
Subscriptions Service |
Subscription status validated during float creation and collection eligibility |
LOC Service |
Line-of-credit eligibility data used in fraud checks |
GrowthBook |
Feature flags — see the flag reference |
EventBridge |
Float lifecycle event bus ( |
Segment |
User analytics events for float creation (including First Float Accepted), payback, and collection outcomes |
Iterable |
Email and in-app notifications triggered by ACH payment events |
AppsFlyer |
Mobile attribution for float creation, including the First Float Accepted payout event; digital receipts for settled collections and paybacks |
Slack |
Destination for the daily origination report |