Digital asset exchange Coinbase recently explained how the company is building digital payments systems. Coinbase says that it aims to create an open financial system for consumers and businesses across the globe.
The Coinbase Payments team’s mission is “to empower customers to move money in and out of the crypto economy with a delightful and flawless experience.”
At present, Coinbase supports more than 10 different payment methods in 30+ countries and it’s building out more solutions.
As noted in a blog post by Coinbase, payments are “one of the areas that have zero tolerance for any errors.” Ensuring the product flows and features function as intended is of “the utmost importance,” the exchange added. It also mentioned that any payment bugs or glitches that are related to “correctness” will result in an “unacceptable” customer experience.
When an error or glitch occurs it must be corrected immediately so that service providers are able to offer the best user experience (UX) possible. The process to remediate these types of mistakes can be time-consuming, and usually gets complicated because of different legal and compliance requirements, Coinbase explained.
The digital asset exchange further noted:
“In our systems, we have built multiple tiers to ensure correctness. These span from unit testing in implementation, production test/bug bash for any feature update or flow changes, monitoring on various error rates, authorization rates, and success rates; to anomaly detection and alerting set up to capture anything that could go wrong as regression due to new changes. Close support with the product loop also helps surface any correctness related issues.”
In addition to logical correctness, the correctness of “system behavior” may be expanded to how “exceptions are handled,” Coinbase added.
Another key aspect of correctness is how “resilient the system is to external issues and bugs,” Coinbase noted. For instance, one of the important concepts in the payments ecosystem is referred to as idempotency. This is “necessary because if there is a retry initiative for any failed transaction, we must ensure the retry doesn’t result in any type of double charge,” Coinbase explained.
The exchange added:
“Usually, an end-to-end payments system would span the client-side, to the backend services, to the external partners where the payments transactions are handled on the backside. All transactions must be kept as atomic as possible.”
However, some client-to-service or internal-to-external requests may be quite long, particularly in “timeout or failure cases, and we can only confirm the final results (success/failure) after minutes or hours later,” Coinbase noted. The exchange pointed out that in some of those cases, it will “initiate retries from upstream to downstream.” If the entire end-to-end isn’t handling retry properly, that is, the system is “idempotent,” then it’s “inevitable to get into a situation of processing the same transaction twice, thus causing double charge or double payout.”
But once the idempotent “quality” is ensured, we also need to ensure that we have the appropriate design in place for “auto-retry and user messaging,” Coinbase added.
Another issue to look at is when having several different layers from upstream to downstream is the data record. i.e., “how we design data models, data recording, and propagation to ensure if any issues arise, we can do our best to recover the system state and trace what happened.”
The Coinbase team further noted:
“Payments always use both cached data for speed and persistent data for recoverability. Whenever there is caching, then it is important to have the right strategy to guide as to when to write to which data layer. I.e. how we do data propagation when there is transient disagreement, how to identify the source of truth, and how we design the whole recovery process to ensure eventual consistency.”
“Although precision is important for building reliable payment systems, we must also look beyond. Empowering customers to move money with a delightful experience is more than just making the transactions safe and correct. End-to-end payment systems are complex and need to incorporate compliance, security, fraud, and other factors.”
(Note: for more technical details on how to implement effective digital payments systems, check here.)
As reported recently, PayPal is planning to offer a “super app” with Fintech services like crypto, payments, investing, rewards, which will all be accessible through a common interface. However, the company said it could take several years before this service becomes available with all its promised features.
As covered, Fintech experts at Google Pay, GoFundMe, and Adyen recently revealed the key payments trends to watch closely in 2021.