Katkat

Design a basic banking system

CoinbaseSoftware Engineer · Onsite

Last updated

This question evaluates understanding of transactional system design, data modeling for financial domains, API design, idempotency, concurrency control, immutable audit trails, and security considerations in an online banking context.

Design and implement a basic online banking system that supports creating accounts, deposits, withdrawals, and transfers between users. Define the data model and APIs, ensure atomicity and idempotency of money movements, prevent double spending under concurrency, maintain an immutable ledger/audit trail, and address security concerns (authentication, authorization, input validation). Discuss consistency guarantees and error handling.