Float Service

The Float Service is the authority for short-term financial advances ("floats") within the FloatMe platform. It owns the full float lifecycle — from underwriting eligibility and disbursement through scheduled and event-driven collection.

What This Service Owns

Domain Responsibility

Floats

Float records and lifecycle — creation, status transitions, collections, and payback dates

Collections

Automated scheduled and webhook-driven collection engine with retry logic and distributed locking

Prenotes

Zero-dollar ACH verification transactions sent ahead of the due date to validate account numbers and verify the processor’s routing configuration

Bypass

Per-user eligibility requirement overrides with configurable expiration

Administration

User bans from float eligibility and QA tooling for automated float creation

Events

Float lifecycle events published to EventBridge for downstream service consumption

Lambda Functions

Function Trigger Purpose

prod-floats-api

API Gateway (IAM + JWT)

Primary REST API — float CRUD, bypass management, payback, collection history, admin operations

prod-floats-collections-scheduler

EventBridge (schedule)

Queries RDS for floats due for collection and enqueues them for processing

prod-floats-collections-worker

SQS (prod-floats-collections)

Attempts pinless debit or ACH collection; updates float status on outcome

prod-floats-webhook-worker

SQS (prod-floats-income-event-tap)

Triggers collection on floats in RETRY status when income is detected

prod-floats-webhook-worker-balance

SQS (prod-floats-balance-event-tap)

Triggers opportunistic collection when a balance update event is received

prod-floats-ach-handler

Kinesis (prod-payments)

Processes ACH payment callbacks and updates float status; notifies users via Segment, Iterable, and AppsFlyer

prod-floats-prenote-scheduler

EventBridge (weekdays, 12:30 UTC)

Queries RDS for SCHEDULING floats due in 4 business days and enqueues a prenote for each user gated in by the floats.prenotes GrowthBook flag

prod-floats-prenote-worker

SQS (prod-floats-prenotes)

Fetches user identity and submits a zero-dollar USIO prenote via the Payments Service

prod-floats-batch-worker

SQS (prod-floats-batch-worker)

Handles bulk float operations and data management tasks

prod-floats-reporter

EventBridge (daily, 12:00 UTC)

Generates and sends the daily float origination report to Slack

External Dependencies

Service Role

Payments Service

Executes disbursements, collection attempts (pinless debit and ACH), and zero-dollar USIO prenotes

Underwriting Service

Validates float eligibility and determines approved amounts and fees

User Service

User profiles and identity data — including the first name, last name, and email submitted with each prenote

Transactions Service

Bank account balances queried during collection decisions

Insight Service

Source of income detection events that trigger webhook collection

Subscriptions Service

User subscription status validated during collection eligibility checks

GrowthBook

Feature flags controlling collection behavior, ACH routing model, and the floats.prenotes per-user prenote rollout

EventBridge

Float lifecycle event bus; float-service event source for downstream consumers

Segment

User analytics events for float creation, payback, and collection outcomes

Iterable

Email and in-app notifications triggered by ACH payment events

AppsFlyer

Mobile attribution tracking for float creation

LOC Service

Line-of-credit eligibility checks used in fraud detection

Documentation