Fintech Core Migration

What

Decomposition of a legacy Node.js monolith into domain-driven serverless functions.

Who

High-frequency trading desk requiring sub-second execution logs.

Why

The monolith was single-point-of-failure. One bad deployment took down the entire trading floor.

Constraints

  • Data consistency is non-negotiable (financial ledgers).
  • Cannot pause trading for maintenance windows.
  • Compliance logging for every API interaction.
  • Strict AWS IAM permission boundaries.

Architecture

ClientAPI GWAuthCoreAnalyticsStorage

System designed for isolation. Auth, Core, and Analytics scale independently based on load profiles.

Engineering Decisions

Event-Driven Architecture

Decoupled transaction ingestion from processing using EventBridge. This ensured we never lost a trade, even if the processor crashed.

DynamoDB Single Table Design

Optimized access patterns for 'GetAccountHistory'. reduced query latency to single-digit milliseconds.

Infrastructure as Code

Everything Terraform. No manual console clicks. Allowed us to spin up ephemeral staging environments per PR.

Frontend & UX Intent

[ UI_SNAPSHOT_PLACEHOLDER ]

Internal admin tools rebuilt with Vite + React Query. Moved from stale-while-revalidate to real-time websockets for trade monitoring.

WebSocket integration for live ledger updatesStrict type-sharing between backend and frontend

Outcome & Reflection

Shipped

A resilient, auto-scaling ledger system.

Improved

System can now handle 10x volume without manual intervention.

Different

I underestimated the cold-start times of Lambdas inside VPCs initially. Had to implement provisioned concurrency which increased costs slightly.

    Mark Allan | kihumba.com