Design a scalable banking system

Quick Overview

This question evaluates expertise in designing scalable, reliable financial systems, testing competencies in distributed system architecture, transactional guarantees (ACID), double-entry data modeling, concurrency control, durability, security, and operational concerns such as monitoring and rate limiting.

Design a scalable banking system

Company: Meta

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design a banking system that supports account creation, balance inquiry, deposit, withdrawal, and atomic transfers between accounts (including cross-currency). Specify APIs, data model (e.g., double-entry ledger), and transaction flow to guarantee ACID properties for transfers, idempotent retries, concurrency control, and overdraft prevention. Describe how you ensure durability, auditability, reconciliations, and consistency across services. Discuss scaling (sharding/partitioning), failure handling (sagas vs. distributed transactions), security (authentication, authorization, encryption, PCI considerations), rate limiting, and monitoring.

Overview: This question evaluates expertise in designing scalable, reliable financial systems, testing competencies in distributed system architecture, transactional guarantees (ACID), double-entry data modeling, concurrency control, durability, security, and operational concerns such as monitoring and rate limiting.

|Home/System Design/Meta
Meta logo
Meta
Sep 6, 2025
hardSoftware EngineerTechnical ScreenSystem Design
5
0

System Design: Core Banking Platform

Problem

Design a banking system that supports:

  • Account creation
  • Balance inquiry
  • Deposit and withdrawal
  • Atomic transfers between accounts, including cross-currency

Specify:

  • External APIs (with idempotency)
  • Data model (double-entry ledger)
  • Transaction flows guaranteeing ACID, overdraft prevention, and concurrency control
  • Durability, auditability, reconciliation, and cross-service consistency
  • Scaling strategy (sharding/partitioning)
  • Failure handling (sagas vs. distributed transactions)
  • Security (authentication, authorization, encryption, PCI considerations)
  • Rate limiting and monitoring

Assume you are designing for a high-traffic consumer banking workload with mobile/web clients and internal services. You may introduce minimal context (e.g., a base reporting currency) where needed.

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...