Grokking the System Design Interview, Volume II
Vote

0% completed

​

Payment System: System Definition

Step 1: System Definition

You type in a card number on a checkout page and click pay. In the next two seconds, several banks and networks decide whether that payment goes through. In this chapter, we design the system behind that moment: a payment processing platform like Stripe.

Merchants are the businesses using this platform. They accept online payments from customers, securely and reliably. The system handles a payment's whole life. It captures the payment details, authorizes the transaction, moves the funds, and handles later events like refunds and chargebacks.

.....

.....

.....

Like the course? Get enrolled and start learning!
Rohit Bhanot

Rohit Bhanot

· 2 months ago

This is extremely text heavy which makes it difficult to grasp an important SD topic. With due respect I feel more effort should have been spent to make it more engaging and enriching rather than dumping large blobs of text. It feels like reading Wikipedia.

Also, Can we really call those bunch of icons as a High Level Diagram without any data flow directions ?

Sorry for the harsh feedback but this definitely looks poorly presented and no way near the worth of pay-walled content !!

P B

P B

· 9 months ago

Synchronous vs Asynchronous Processing: The Payment Service does most steps synchronously to provide a result in the API response. We choose sync for the primary flow because merchants (and customers) expect an immediate answer to a payment attempt. 

Since the Transaction DB update is being done by Payment service as part of handling the request itself, doesn't this bring in a lot of failure scenario? For example, what if the Payment Service instance crashes right after calling "Acquirer Connector". The way, the external processor will process the payment, but the Transaction DB would not have any record. Additionally, it means that the client will have to keep a long lasting connection and will be susceptible to connection drop.

Isn't the following alternative present a more dur

Reading Progress

0%


Vote for new content