[ OK ]4f389d34-ef5f-4225-8ffc-8c0d8780cf34 — full content available
[ INFO ]category: System Design difficulty: unknown freq: first seen: 2026-03-13
[UNKNOWN][SYSTEM DESIGN]
$catproblem.md
The Ledger System problem is a cornerstone of the Coinbase interview process, appearing in both the CodeSignal online assessment and system design rounds. It typically asks candidates to design or implement a core banking service that manages customer account balances with strict financial correctness. YouTube +2 2063
1. Problem Statement Overview
You are tasked with building a core ledger service for a fintech platform. The system must support customer account balances, ensuring full auditability and correctness even under high concurrency and potential failures. Reddit +1 60
2. Functional Requirements
Transactions: Support basic operations like deposits, withdrawals, and internal transfers between accounts.
Balance Queries: Distinguish between "posted" (finalized) and "available" balances.
Audit Trail: Maintain a full transaction history with support for pagination and filtering.
External Integration: Handle deposits and reconciliations from external sources like ACH, cards, and PayPal. YouTube +1
3. Non-Functional & Technical Requirements
ACID Semantics: Ensure atomicity for multi-account transfers to prevent "double-spending" or funds disappearing during a crash.
Double-Entry Bookkeeping: Every transaction must have a corresponding debit and credit to ensure the books always balance for audit purposes.
Idempotency: Requests must have an "exactly-once" effect; retrying a failed network request should not result in a duplicate charge.
Concurrency Control: The system must handle high throughput without race conditions, often using optimistic or pessimistic locking on account records. Reddit +1
4. Common Extensions & Edge Cases
Reconciliation: How to resolve discrepancies when a transaction is initiated but not yet reflected in the external bank.
State Machines: Modeling the lifecycle of a transfer (e.g., PENDING →right arrow→ SETTLED or FAILED).
Fraud Checks: Integrating spending limits or risk rules into the transaction flow. YouTube +2
5. Interview Format Context
CodeSignal (LLD): Usually 4 parts where each subsequent problem builds on the last (e.g., Part 1: Basic Get/Set; Part 2: Transactions; Part 3: TTL/History; Part 4: Advanced filtering).
System Design (HLD): Focuses on scalability, sharding/partitioning strategies, and choosing between SQL vs. NoSQL based on consistency needs.
Are you preparing for a specific stage? I can provide:
A Python/Java implementation of a simple thread-safe ledger.
A system design checklist for the high-level round.
CodeSignal-specific tips for the 4-part problem format.