Welcome to 'This is My Architecture.'
Today, I'm here with Matteo from GSR.
Hi, thanks for having me. Hi, Matteo.
Can you tell us about GSR?
Sure, GSR is a global trading firm,
an investor in the exciting world of cryptocurrencies and digital assets trading.
We specialize in providing liquidity, risk management and structured products
to institutional participants in the crypto ecosystem.
Interesting. So what are your technical challenges,
and how is the cloud helping you with them?
Our technology is connected to over 45 exchanges around the world,
so we need to fast and secure connectivities with them.
AWS Global Infrastructure provides just for that.
That's great to hear.
So can you walk us through the architecture?
Sure.
Our DevOps team manages and provisions Kubernetes clusters
on top of EC2 instances,
running in different availability zones to sustain regional failures.
We run over a multitude of production clusters,
often globally distributed, often in key regions,
where exchanges might be AWS co-located.
This allows us to optimize exchange connectivity,
increasing throughput and experiencing lower latencies as a result.
I see, and how can you connect to those exchanges from your infrastructure?
When available, we leverage AWS PrivateLink technology
to simulate across connect to exchanges that run in the same AWS Region.
Okay, and how do you do that if PrivateLink is not available?
For those exchanges that do not run on AWS,
we leverage Direct Connect technology,
which gives us direct market access without having to manage physical hardware.
Okay.
Okay, that's cool.
So you connect from multiple AWS Regions,
to different exchanges around the world.
Now, when you have the data in the AWS Regions,
do you need to sync the data across those regions?
We do.
All our live and studied trading data lives in Amazon Aurora.
We store millions of market traits and other type of relational data in our database.
Aurora allows us to scale and replicate our clusters globally,
by using our global databases.
That's good.
And I see that you have many other storage services here.
Can you walk us through them?
Most of our workloads, like I said, are stateless.
On top of Kubernetes, we use ElastiCache technology
to persist key value type of data.
For instance, all the flow which is transient in nature.
That simplifies our setup
as we don't need to provision persistent volumes directly attached to the workloads.
We run an ElastiCache available cluster per region,
which serves local workloads.
We also use EFS technology
to store terabytes of market data that we collect on a daily basis,
recorded in our proprietary format.
We then leverage DataSync technology
to daily sync our EFS production volumes to those S3 buckets,
which will be used when running simulations.
We found that S3 scales much better than EFS when running simulations at scale,
as we can drive S3 throughput much higher than what EFS provides.
Fantastic.
And you just mentioned that you use the data here in S3 to run simulations.
So how do you run those simulations?
For that, we leverage AWS Batch.
Our search team needs to analyze tonnes of market data
to find or optimize trading signals
or perform some other type of data analytics.
Market data is consumed from S3,
cached on EC2 instances for data locality.
And results are pushed back to S3 for easy retrieval,
so that our users, specifically the research team,
can consume this data very easily.
Wonderful.
So who will actually use the results of the analysis that has been performed by your research teams?
The research team will provide these analysis and results to the trading team,
who'll be monetizing the trading signals that they found,
and we'll be using them in our automated trading strategies.
Perfect, thanks a lot, Matteo for sharing your architecture with us today.
Thanks for the opportunity.
And thanks for watching 'This is My Architecture.'