Redactie - 20 juni 2016

Microservices maken P2P-betalingsplatform Twyp schaalbaar

De markt van online betalingen staat, op zijn zachtst gezegd, niet stil. Nieuwe betaalmethodes schieten als paddenstoelen uit de grond. 

Er is één gebied dat nog redelijk onontgonnen is: dat van peer-to-peer-betalingen (P2P) – het overmaken van geld naar je vrienden, bijvoorbeeld. ING heeft de beste papieren in handen met de app Twyp (The way you pay), die in december 2015 in Spanje en in januari in Nederland is gelanceerd. Later zal deze app verder in Europa worden uitgerold. 

Nu valt of staat de populariteit van een dergelijke app met de user experience die gebruikers ervaren – hoe laagdrempeliger en eenvoudiger, hoe beter. Waar echter niet iedereen bij stilstaat, is dat het inrichten van de backend zo mogelijk nog meer voeten in de aarde heeft dan de voorkant; niet alleen om de gebruikerservaring te optimaliseren, maar ook om de veiligheid en continuïteit te waarborgen. En, zeker in het geval van Twyp, schaalbaarheid te kunnen garanderen vanwege de uitrol naar andere landen.

De oplossing voor deze uitdaging werd gezocht in web-scale architecture. Dankzij het gebruik van microservices is niet alleen de app schaalbaar, maar de organisatie die hier verantwoordelijk voor is ook.

Reactive manifesto
“Een belangrijk uitgangspunt was dat de gebruiker de ervaring moet hebben dat de app altijd ‘up’ is”, aldus Sander de Groot (Info Support), Technical Lead bij Twyp (foto). Hij was samen met een team verantwoordelijk voor de inrichting van de backend. “Vergelijk het met WhatsApp: door de vinkjes kun je constant monitoren of een bericht is verzonden, ontvangen of gelezen. Als je een betaling doet, verwacht je dezelfde gebruikerservaring. We hebben ons daarbij laten leiden door het Reactive Manifesto: mocht het een keer voorkomen dat er een probleem is met de betaling, dan moet je daar als gebruiker zo min mogelijk van merken.” 

De backend is opgebouwd uit meer dan twintig verschillende microservices. Dit zijn losse oplossingen die verantwoordelijk zijn voor onder meer het saldo van de gebruiker, het opladen van het saldo, het overmaken van geld, de registratie en de gegevens van de gebruiker. Sander de Groot: “Deze microservices praten niet rechtstreeks met elkaar, maar zijn event-driven. Stel: een gebruiker maakt geld over naar een vriend, dan stuurt de betaalservice een event uit naar de andere microservices die verantwoordelijk zijn voor het saldo van de ontvanger en de betaler, eentje naar de notification engine die de communicatie naar buiten toe regelt, en ga zo maar door. Door gebruik te maken van events, hoeven de services onderling zo min mogelijk data direct uit te wisselen.”

Om de continuïteit te waarborgen schat het systeem voorafgaand aan elke transactie in hoe groot de kans is dat de overboeking gaat slagen. “Daarin wordt bijvoorbeeld meegenomen dat het saldo toereikend moet zijn, dat de ontvanger de verzender niet geblokkeerd mag hebben, maar er wordt ook gekeken naar het risico op fraude. Na die eerste controle ziet de gebruiker dat de betaling wordt verwerkt, pas als de overboeking daadwerkelijk is verwerkt krijgt hij de confirmed -status – net zoiets als bij de vinkjes van WhatsApp. Het is efficiënter om een schatting te doen en later daadwerkelijk de transactie uit te voeren dan om dit ineens te doen. Voor de gebruiker betekent dit dat hij een veel snellere gebruikerservaring heeft, voor de organisatie is het voordeel dat we veel beter technisch kunnen schalen”, aldus De Groot.

Een software-architectuur op basis van microservices maakt de implementatie aanzienlijk complexer dan een meer traditionele benadering. Maar ook flexibeler: “Je kunt vrij eenvoudig onderdelen testen en eventueel vervangen als dat nodig is, omdat de microservices volledig los staan van elkaar. Zo kunnen we een nieuwe service eerst testen op 10 procent van de gebruikers, voordat we het volledig in gebruik gaan nemen.”

Een team met elf verschillende nationaliteiten was verantwoordelijk voor de ontwikkeling van Twyp. “Het is een autonome groep, die als startup werkt binnen ING. Dat heeft erg bijgedragen aan het saamhorigheidsgevoel.”

In december is de huidige versie van Twyp live gegaan. De ontwikkeling is ondertussen nog in volle gang, aldus Sander de Groot. “We werken nu met een ‘minimal viable product’ waaraan we steeds nieuwe features kunnen toevoegen. Dat is ook weer het voordeel van een web-scale architecture; je bent heel flexibel om features toe te voegen.”