Hello, welcome to another edition of 'This is My Architecture'.
My name is Ryan,
and I'm joined by Jonaton from Rappi.
Jonaton, welcome to 'This is My Architecture'.
Thanks for having me.
So, tell us a little bit about what Rappi does.
Rappi is a Latin American Super App
offering users fast delivery of a range of products
from restaurant food, supermarket, and pharmacy,
a suite of financial services,
and a platform for booking experiences like concerts, hotel stays, and flights.
Great.
We have an architecture diagram in front of us right here.
Before we dive into this, let's talk about RappiPay,
which is what this pertains to.
RappiPay is the financial vertical of Rappi.
It started three years ago,
and it grew and became exponential pretty quick.
We had a pretty small team then.
We knew that we had to build a simple-to-use platform
for our quickly growing developer team,
scalable, reliable, secure, and cost-efficient.
So, we built this platform that is mostly based on Kubernetes.
We started using kOps, that's our Kubernetes engine.
But as we scaled, we noticed that managing the Kubernetes control plane
was a hard operational world for us.
So, we quickly moved to EKS.
Our EKS clusters are composed by Spot Instances,
and for on-demand instances.
That was key for us for scaling costs-efficiently.
We're using Spot (Spotinst) for that operation.
And that was great for not having to manage
that part of the scaling to make this cost-efficient.
Okay, makes sense.
And you've got some other pieces here, and components.
So, can you walk us through what each of these might mean,
and how they interact with the architecture?
Yes.
Our end users come into our microservices through CloudFront.
We are using CloudFront for our TLS termination, and also for caching.
We also have WAF here.
And then the traffic goes into our ingress controllers to ALB into EKS.
And the traffic between our microservices
inside the cluster and across clusters, it's happening in the mesh.
And we also have rapid means of communication with several partners,
and that's mostly taking place using Direct Connect here.
Got you. Okay, great.
You've also got a suite of services down here that looks like a persistent layer.
Talk to us a little bit more about this layer here of the architecture.
Yes.
I mentioned that the platform should be simple to use for the developers.
So, we created our custom microservices API,
where the developers can handle
the entire lifecycle of their microservices.
They can create microservices.
They can deploy them.
And they can also create databases,
relational databases, document databases,
if they need like a cache, they can create a cache here.
And if they need to publish to a topic or consume,
they can make other things happen through this layer.
And it's great for us having AWS Managed Services
because we can focus on adding value in this layer
instead of taking care of the control of the underlying,
- and scaling, making that reliable. - That makes sense.
Yeah, you want to hide away a lot of that complexity from your developers,
to make it simple and easy to scale, and for them to use as well.
Of course, kubernetes and ECO are powerful technologies.
There's a lot of things that could be wrong at scale.
So, the developer doesn't even know where the applications are running,
or in which of these instances their data is living.
Yeah, makes sense.
And in terms of your transactions and your throughput,
what sorts of numbers are you seeing now with this sort of architecture?
Today, this architecture is processing thousands of transactions per hour.
We have around 15,000 ports running,
- Wow. - to 300 developers,
and 400 deployments per day with this platform.
Fantastic. That's awesome growth.
Very cool to see that you've built this architecture,
and the tremendous growth that you're seeing within RappiPay.
You should be very well served for years to come.
So, thank you, Jonaton,
and thank you all for watching 'This is My Architecture'.