Architecture

System Context

The Transactions Service runs as eight AWS Lambda functions, two of them behind API Gateway, with DynamoDB as its data store. Plaid is the data source. Plaid webhooks and Auth0 login events drive asynchronous mining; account and connection events are published to the EventBridge default bus.

system context transactions service

Components

Component Trigger Purpose

site-txn-api (Lambda)

API Gateway site-txn (AWS IAM)

REST API for items, accounts, transactions, liabilities, KYC, link tokens, and the BIN list; publishes the item events in Events

site-txn-webhook (Lambda)

API Gateway site-floatme-webhook-api

Verifies the Plaid webhook signature and enqueues the payload — Webhook intake

site-txn-miner (Lambda)

SQS site-txn-plaid-webhooks

Routes webhooks by type and code; fetches transactions, accounts, liabilities, and KYC sessions from Plaid — Miner routing

site-txn-throttle-miner (Lambda)

SQS site-txn-plaid-throttle

Fetches the next 500-transaction page of a mine request — Pagination

site-txn-refiner (Lambda)

Kinesis site-txn-plaid-transactions

Converts raw Plaid records to FloatMe records in DynamoDB — Refiner

site-txn-feeder (Lambda)

DynamoDB Streams (site-txn-transactions, site-txn-plaid)

Publishes new_account for account writes; disconnects items and Layer stubs whose TTL expired — Feeder

site-txn-listener (Lambda)

SQS site-txn-listener-eventbridge

Turns Auth0 login events into synthetic webhooks when an item’s data is stale — Listener

site-txn-institution (Lambda)

EventBridge schedule (Saturday 00:00 UTC)

Full refresh of Plaid institution metadata — Institution sync

cmd/summary/ builds a ninth binary, a DynamoDB Streams handler that maintains SUMMARY rows. It has no Terraform module and is not deployed — see Summary.

Storage

  • DynamoDB Tables — site-txn-transactions, site-txn-plaid, site-txn-plaid-institutions, and three shared tables in us-east-1

  • S3 — BIN reference list loaded by the API at startup

External Dependencies

Service Role

Plaid

Items, accounts, transactions, balances, auth numbers, liabilities, institutions, Link tokens, Layer sessions, Identity Verification, webhook signing keys

Auth0

Login log-stream events consumed by the listener

User Service

Activates the user after an item is added; user status for link eligibility and the v1 removal ban

Float Service

Active-float check that blocks main-account changes and item removal

Insight Service

Employment lookup for item-change rules; receives out-of-order transaction removals over SQS

LOC Service

Rejected loan application on KYC failure

Payments Service

Deletes the stored bank account when Plaid reports updated auth numbers on the main account

Admin API

Admin note when a user revokes Plaid permission

GrowthBook

Feature flags — see the flag reference

Segment

plaid_item_errored and plaid_item_repaired events from the miner

Iterable

conAccts_plaid_item_changed event on the v1 removal ban

EventBridge

Default bus for published events — see Events