Confidential Brief
CS-01
OneBit - Financial Sync Platform
Secure Banking Integration with Real-Time Transaction Monitoring
Next.jsNode.jsPostgreSQLPrismaPlaid APIWebSocketsRedis
Problem & Context
OneBit helps small businesses connect bank accounts and track activity in near real time. The hard part was making sync reliable across messy data, duplicate webhook events, and accounts with different edge cases.
Constraints
Financial APIs fail in unpredictable ways. Webhooks arrive out of order, data can be partial, and sync jobs can stop mid-process. The system had to be failure-tolerant while still providing clear user-facing progress.
Architectural Approach
I used Next.js on the frontend and PostgreSQL with Prisma for the backend data model. Sync work runs through queue workers with retries and backoff, and users get real-time progress over WebSockets instead of polling. API boundaries are protected with auth middleware, CSRF checks, and request guards.
System Architecture
Presentation
Next.js Frontend
WebSocket Client
Application
REST API
WebSocket Server
Queue Workers
Data
PostgreSQL
Redis
Plaid API
Technical Stack
Next.jsNode.jsPostgreSQLPrismaPlaid APIWebSocketsRedis
Key Decisions
Used WebSockets instead of polling so sync progress feels instant and server load stays lower.
Moved sync work to retryable background jobs so bad webhook days do not break the app.
Kept Prisma for strong types and safer schema changes.
Scoped websocket session state per user to avoid cross-tenant leakage.
Outcome
Shipped a production sync system that handles Plaid edge cases reliably while keeping users informed through live progress updates.