Design a Payment System
Accept card payments for an e-commerce platform, move money correctly exactly once, and be able to prove it.
14 questions on this site are reported in Stripe software engineer interviews. Each has a full reference design (requirements, back-of-envelope numbers, components, user flows and deep dives with interviewer follow-ups). Each one can be walked through turn by turn and then sat as a mock. Patterns covered: consistency, idempotency, ledger, fintech, consistent-hashing, eviction, replication, hot-keys, algorithms, counters, redis, edge, inventory, reservations, locking, queueing, thundering-herd, scheduling, leases, queues, fault-tolerance, order-book, determinism, event-sourcing, low-latency, fairness, id-generation, clocks, bit-layout, k-sortable, workflow-orchestration, durable-timers, sharding, api-gateway, authentication, control-plane, quotas, multi-tenancy, git, quorum, content-addressing, fraud, feature-store, stream-processing, exploration, webhooks, retries, isolation, ssrf, market-data, order-management, websockets.
Run an AI mock Stripe interview →One of these questions, run as a live round in that style, with a debrief at the end.
Attribution comes from public interview guides and candidate reports, not from Stripe. It indicates where a question has been asked, nothing more.
Accept card payments for an e-commerce platform, move money correctly exactly once, and be able to prove it.
A Redis-like cache as a service: hundreds of nodes, terabytes of memory, sub-millisecond gets, and a cluster that survives losing a machine mid-request.
A distributed service that decides, in under a millisecond, whether a request from a client is allowed under its quota.
Sell 60 000 seats in ten minutes to a million people at once: hold a seat while someone pays, never sell it twice, and keep the site up when demand is a hundred times supply.
Run millions of cron jobs and one-off tasks on time across a fleet, exactly once each, and keep going when a worker dies halfway through one.
Match buy and sell orders in microseconds, in a strict and provable order, never lose a fill, and stay correct when the matching engine dies mid-trade.
Hand out a million 64-bit ids a second across many hosts and regions, never twice, roughly in time order, with no central bottleneck and no trust in the wall clock.
A managed workflow engine that runs 200 M state-machine executions a day, some lasting a year, applying every transition exactly once.
One front door for public and partner APIs: authenticate, limit and route 1 M requests a second to 300 services, adding under 10 ms.
Host 400 M git repositories on replicated file servers, serve 100 k fetches a second, and run pull requests, forks and webhooks on top.
80 M users paying friends instantly: 15 M transfers a day on a sharded double-entry ledger, funded and cashed out over slow bank rails.
Allow, block or challenge 10,000 card payments a second in under 100 ms, then learn from chargebacks that arrive months later.
Deliver 3 billion signed webhooks a day to a million customer endpoints, retrying for three days, without one slow endpoint delaying anyone else.
A retail brokerage: live prices to 3 M phones, 20 k orders a second at the open, every share and cent exact.
45–60 minutes, typically money-adjacent: correctness, idempotency and reconciliation over raw scale.
Optimising for throughput when the question is about never losing or double-charging a payment.
From public interview guides and candidate reports, and Stripe’s own interview guidance where it publishes any. Not endorsed by Stripe. Formats change; treat it as a prior, not a promise.
Large-company loops run 45 to 60 minutes, expect numbers, and spend most of the time on deep dives. Walk through a question to see how a strong candidate paces the hour, sit the same question as a mock until you can produce the requirements, the estimates and the design without looking, then read the interview framework guide for how to structure the hour. The other questions on the site teach patterns that show up in Stripe interviews under different names.
Questions reported in Stripe system design interviews include Payment System, Distributed Cache, Rate Limiter, Ticketmaster, Distributed Job Scheduler, Stock Exchange, Unique ID Generator and AWS Step Functions, among 14 in total. Between them they test consistency, idempotency, ledger, fintech, consistent hashing and eviction. The reports come from public interview guides and candidate accounts, not from Stripe, so practise the patterns rather than memorising one list.
45–60 minutes, typically money-adjacent: correctness, idempotency and reconciliation over raw scale.
Reports say the Stripe round weighs 4 things. 1. Exactly-once effects, idempotency keys and retries. 2. Ledger and state-machine design, including the unknown-outcome case. 3. API design and the developer experience of the thing you are building. 4. Reconciliation and what happens when an external system disagrees with you. Optimising for throughput when the question is about never losing or double-charging a payment.
Practise the questions reported there out loud, under a 45-minute clock: requirements with numbers first, then estimates, a high-level design, and deep dives into the two or three hardest parts. Start with Payment System: watch a strong candidate answer it turn by turn, then sit it yourself. Then cover the patterns the round leans on (consistency, idempotency, ledger and fintech) with one more question each.