Grokking the System Design Interview, Volume II
Vote

0% completed

​

Step 4: High-Level Design

The payment system takes a charge request from a merchant, gets an answer from the customer's bank, and records exactly what happened. Money makes the rules strict: nothing may be lost, nothing may be charged twice, and a card number may reach only one service. We follow one example through the system: Sam orders a $40 book from an online bookshop that uses our platform, and later the bookshop refunds him.

The diagram below shows every part. The rest of this lesson introduces each one at the moment Sam's payment reaches it.

Path 1: Sam's card is charged

1

.....

.....

.....

Like the course? Get enrolled and start learning!
Dmitrii Medvedev

Dmitrii Medvedev

· a month ago

Payment Service never gets the raw card data back from the Card Vault in a real system like Stripe, as it completely breaks isolation, forcing that entire service (and everything it connects to) into the highest, most expensive tier of PCI-DSS compliance scope. Instead of the Card Vault handing the card back to the Payment Service, the Payment Service delegates the outbound API call to the Card Vault environment using a secure Forward Proxy and the Card Vault overrides the received template (with token) with the credit card raw data ( using volatile RAM) and sends it to the Card Network(VISA/Mastercard).

Show 1 reply

Reading Progress

0%


Vote for new content