Transactions Service
The Transactions Service is the central authority for bank account connections, transaction data, and financial account management within the FloatMe platform. It owns the Plaid integration, transaction storage, account balances, liabilities, and KYC (identity verification) sessions.
What This Service Owns
| Domain | Responsibility |
|---|---|
Items |
Plaid item connections (access tokens, institution links, status lifecycle) |
Accounts & Balances |
Plaid account data and balance snapshots for all connected accounts |
Transactions |
Cached transaction records fetched and refined from Plaid |
Webhooks |
Plaid webhook event storage and routing into the mining pipeline |
Institutions |
Financial institution metadata synced weekly from Plaid |
Liabilities |
Credit card, mortgage, and student loan data for connected accounts |
Balance History |
Per-account balance snapshots with a rolling 32-day retention window |
KYC |
Plaid Identity Verification session storage and management |
Lambda Functions
| Function | Trigger | Purpose |
|---|---|---|
|
API Gateway (IAM + JWT auth) |
Primary REST API — CRUD for items, accounts, transactions, institutions, liabilities, KYC |
|
API Gateway (webhook API) |
Receives Plaid webhooks, verifies, and enqueues them for processing |
|
SQS ( |
Reacts to webhook events — fetches updated transactions and accounts from Plaid |
|
SQS ( |
Mines additional pages of transactions when pagination is required |
|
Kinesis ( |
Converts raw Plaid data into FloatMe format and persists to DynamoDB |
|
DynamoDB Streams |
Publishes account and transaction change events to the outbound Kinesis stream |
|
SQS ( |
Reacts to Auth0 login events — triggers re-mining if user data is stale |
|
CloudWatch schedule (weekly) |
Syncs Plaid institution metadata into DynamoDB |
External Dependencies
| Service | Role |
|---|---|
Plaid |
Primary data source — bank account connections, transactions, balances, liabilities, KYC |
Auth0 |
Auth0 Log Stream events going to EventBridge, consumed by the listener Lambda to trigger re-mining |
User Service |
User activation after item add; user status checks during item removal |
Payments Service |
Account/routing number encryption on item creation; called during mining |
Float Service |
Active float balance checks — prevents item removal or main account changes when a float is outstanding |
LOC Service |
Line-of-credit eligibility checks during mining |
Insight Service |
Receives transaction removal signals via SQS |
GrowthBook |
Feature flags for mining configuration (personal finance categories, logo mining, etc.) |
Segment |
Analytics events for item state changes |
Documentation
-
Architecture — System context diagram, Lambda breakdown, data storage, inbound/outbound traffic
-
Features — Capability reference by domain
-
Plaid Mining Pipeline — End-to-end webhook processing and transaction mining flow
-
Item Lifecycle — Item statuses, add/update/remove flows
-
Event-Driven Flows — Inbound and outbound async event details
-
KYC (Identity Verification) — Plaid Identity Verification session management
-
Infrastructure — Terraform-managed AWS resources
-
API Specification — Full OpenAPI spec