Design a Visa-like payment processing system
Company: Databricks
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Technical Screen
### System Design Prompt
Design a card payment processing system similar to a Visa/Mastercard network.
The system should support:
- Card-present and card-not-present transactions
- Authorization (approve/decline), capture/settlement, refunds, and reversals
- High availability and low latency for authorization
- Exactly-once/at-most-once semantics where appropriate (no double-charging)
- Idempotency and retries across unreliable networks
- Auditability, reconciliation, and dispute/chargeback workflows (high level)
- Compliance considerations (PCI, encryption, key management)
### What to cover
1. Requirements (functional + non-functional) and assumptions
2. High-level architecture and core services
3. APIs/events and data models (high level)
4. Consistency, idempotency, ordering, and failure handling
5. Storage choices, scaling, partitioning
6. Observability, security, fraud hooks
7. Capacity estimates (rough) and bottlenecks
Quick Answer: This question evaluates a candidate's ability to design a secure, low-latency card payment processing network, testing knowledge of distributed systems, transaction semantics (authorization, capture, refunds, reversals), idempotency, consistency and failure handling, data modeling, APIs, observability, fraud detection, and compliance.