Fighting PostgreSQL write amplification with HOT updates
Android at Adyen is not your typical Android role. Normally, most application development is tightly coupled to Google Play; So to understand the payments app development space, it requires a shift in who the potential customers are, and what the marketplace looks like.
This article will provide you with an insight into how Adyen leverages Android to implement a fully fledged payment solution.
Let’s begin with answering a question to provide a reference point:
“How is Adyen using Android to assist merchants in processing payments in their stores?”
To gain context (pun intended) we have to briefly zoom out and look at the current landscape, assess what Android is bringing to this space, and finally focus on how Adyen is enabling better Android-based solutions for merchants.
The similarities with the current state of POS devices and where mobile phones were in the early 2000s is striking; You had OEMs of mobile phones all making proprietary software for their devices. As these phones were becoming more powerful they began to blur the boundaries of what they could do.
In exactly the same fashion, POS device hardware has become both cost effective and more powerful, inturn increasing the possibilities in what a single device could do. So manufacturers began forking the Android Open Source Project - again hardening the source code and certifying it for payments. Leaving us with Android-based multipurpose payment devices.
It’s important to note that these Android forks do not contain any of Google's proprietary software, due to both licensing and certifications, which then means no access or distribution via the popular app store.
This poses some interesting challenges with both scalability and deployment. How do you integrate with different OEMs to take a payment? And how do you get your application onto a device with no application store?
The sweet spot where Adyen operates has two functions.
We build an Android payments based solution that integrates the APIs from the OEMs to read card data and securely communicate with the Adyen platform for payment processing. This standardizes the payment experience for merchants who want to integrate with the platform and simplify process payments.
Keeping in mind the comparison with mobile phones: a payment device processing a payment is akin to a mobile phone making a call - it has achieved its primary purpose.
Next, Adyen supports merchants to further leverage Android, enabling merchants to provide a better experience for both staff and customers.
Here we develop and add features to our launcher application, keeping users within a secure environment mitigating the risks of nefarious actions from individuals. Likewise, in reducing risk we only use third party libraries from Google and JetBrains.
We work with the latest industry trends: Dagger/Hilt for dependency injection, Coroutines/Flow as the primary mechanism for asynchronous code and Jetpack Compose for our UI.
With a launcher application in place, merchant developers are building checkout solutions - applications that can tally up a customer's order supporting different payment methods and currencies. However, as with application development this is only limited by the creativity of the team. Merchants have created apps that use barcode scanners and cameras to check stock levels for example.
Using Android this way repurposes the single use payment terminal to a multi functional device for merchants.
By submitting this form, you acknowledge that you have reviewed the terms of our Privacy Statement and consent to the use of data in accordance therewith.