Design a Stateful Banking System with Scheduled Payments and Account Merges

Last updated: August 6, 2026

Quick Overview

Design a stateful banking system that supports scheduled payments and the ability to merge accounts.

Airbnb
Software Engineering Fundamentals
Software Engineer
Airbnb
August 6, 2026
Software Engineer
Online Assessment
Software Engineering Fundamentals
Medium

3

0

26 solved


Design a stateful banking system that supports scheduled payments and the ability to merge accounts.

This question is typically asked in the online assessment round for software engineering roles to evaluate a candidate's ability to design complex systems. Interviewers are looking for a clear understanding of state management, data consistency, and how to handle various banking operations while ensuring reliability and scalability.

What the Interviewer Expects
  • Identify key requirements for the banking system, including user authentication and transaction handling.
  • Outline high-level architecture and components, such as databases and services involved.
  • Discuss how to implement scheduled payments and account merging functionality.
  • Explain trade-offs and potential challenges, such as data integrity and system scaling.
  • Consider security measures and compliance with financial regulations.
Key Topics to Cover
System Design
State Management
Data Consistency
Scalability
Security
How to Approach This
  1. Apply SOLID principles. Single Responsibility makes code testable, Open/Closed makes it extensible.
  2. Choose data structures based on access patterns, not familiarity.
  3. Prefer immutable data and message passing over shared mutable state for concurrency.
  4. Design APIs with RESTful conventions, versioning, meaningful errors, and pagination from day one.
Possible Follow-up Questions
  • How would you handle transaction failures in this system?
  • What database technology would you choose for this banking system and why?
  • Can you explain how you would ensure data integrity during account merges?
Sharpen Your Skills on Codemia

Practice similar problems with our interactive workspace, get AI feedback, and track your progress.

Practice System Design Problems
Sample Answer
Requirements

To design a stateful banking system, we need to establish clear requirements. Key functionalities include:

  • User authentication to ensure secure access.
  • Ability to create and manage bank accounts. ...
High-Level Design

The system can be structured into several components:

  1. User Service: Manages user accounts and authentication.
  2. Account Service: Handles operations related to bank accounts, including crea...

Submit Your Answer
Markdown supported

Related Questions