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

prod-txn-api

API Gateway (IAM + JWT auth)

Primary REST API — CRUD for items, accounts, transactions, institutions, liabilities, KYC

prod-txn-webhook

API Gateway (webhook API)

Receives Plaid webhooks, verifies, and enqueues them for processing

prod-txn-miner

SQS (prod-txn-plaid-webhooks)

Reacts to webhook events — fetches updated transactions and accounts from Plaid

prod-txn-throttle-miner

SQS (prod-txn-throttle)

Mines additional pages of transactions when pagination is required

prod-txn-refiner

Kinesis (prod-txn-plaid-transactions)

Converts raw Plaid data into FloatMe format and persists to DynamoDB

prod-txn-feeder

DynamoDB Streams

Publishes account and transaction change events to the outbound Kinesis stream

prod-txn-listener

SQS (prod-txn-listener-eventbridge)

Reacts to Auth0 login events — triggers re-mining if user data is stale

prod-txn-institution

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