← revolut Interview Insights

revolut·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
May 2026

Summary

System design round at Revolut for a software engineering role. The whole thing was one long question about distributed data consistency across regions for a global banking product. Dense topic and the scope kept expanding as we talked.

Questions Asked (1)

Q1

Design a data architecture for a global digital bank that keeps customer and account data consistent across multiple geographic regions, while supporting balance checks, transfers, and card payments from anywhere in the world.

System DesignTechnical Trade-offsData Modeling
Author's notes

This is the kind of question where you can talk for an hour and still feel like you barely scratched the surface.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, such as consistency levels, latency targets, and regulatory constraints. Then propose a multi-region architecture that balances consistency and availability, using techniques like geo-partitioning, consensus protocols, and asynchronous replication. Finally, discuss trade-offs and how to handle failures and conflicts.

Pro tip: Emphasize that perfect global consistency is often impractical; instead, propose a pragmatic approach that uses strong consistency for critical operations (e.g., transfers) and eventual consistency for less critical ones (e.g., balance checks), while ensuring idempotency and auditability.

1. Clarify Requirements

Ask about consistency needs (strong vs. eventual), latency SLAs, data residency regulations, and expected scale. This shapes the entire design.

2. High-Level Architecture

Propose a multi-region deployment with data partitioned by customer region. Use a global transaction coordinator or consensus protocol (e.g., Raft, Paxos) for critical writes.

3. Data Consistency Strategy

For critical operations like transfers, use synchronous replication within a region and asynchronous cross-region replication with conflict resolution. For balance checks, allow eventual consistency with read replicas.

4. Handling Transfers and Payments

Design idempotent APIs, use distributed transactions or sagas for cross-region transfers, and integrate with card payment networks via regional processors.

5. Trade-offs and Failure Handling

Discuss CAP theorem trade-offs, latency vs. consistency, and how to handle network partitions, region failures, and data conflicts.

Key Points to Mention

  • CAP theorem and the need to choose consistency over availability for financial transactions
  • Use of consensus algorithms (e.g., Raft) for strong consistency in critical operations
  • Geo-partitioning of data to meet data residency requirements and reduce latency
  • Idempotency and exactly-once semantics for transfers and payments
  • Asynchronous replication with conflict-free replicated data types (CRDTs) or last-write-wins for non-critical data
  • Monitoring, auditing, and reconciliation processes to ensure data integrity

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.