What is the Remix Stack at Statista
What is Remix?
Remix is an application framework written in JavaScript using React to build modern applications. For more details read the official page at remix.run
The Remix Stack is a blueprint to create new Remix applications conforming to the 4.0 architecture. A Remix application spans between browser and server and connects to additional optional backend systems.
architecture-beta
service backend(server)[other Backends]
group remix(cloud)[Remix Stack Application]
service browser(internet)[Browser] in remix
service server(server)[Server] in remix
browser:R -- L:server
server:R -- L:backend
It includes a lot of features which most applications at Statista will need for integrating with the surrounding environment and systems:
Infrastructure
All Remix applications are written in TypeScript and will be operated in the AWS Cloud. The target infrastructure would be either AWS Lambda or AWS Fargate.
There are no limitations for a Remix application to use AWS services or other applications in the same or different AWS accounts.
Lambda Setup
The lambda setup is lightweight and requires less infrastructure. It is directly connected into the CDN of Statista.
architecture-beta
service browser(internet)[Remix in the Browser]
group cdn[AWS Account]
service cft(logos:aws-cloudfront)[CDN] in cdn
group aws[AWS Account]
service server(logos:aws-lambda)[Remix on Lambda] in aws
service backend2(logos:aws-s3)[Example Bucket] in aws
service backend3(logos:aws-rds)[Example Database] in aws
group aws2[AWS Account]
service backend(logos:aws-fargate)[Example Backend] in aws2
browser:R -- L:cft
cft:R -- L:server
server:T -- L:backend
server:R -- L:backend2
server:B -- L:backend3
Fargate Setup
The fargate setup is integrated with a network loadbalancer to allow easier scaling. The loadbalancer connects into the CDN of Statista and forwards the traffic into the Fargate containers. All Remix infrastructure is placed in the same VPC. It could also live next to other resources in the same VPC.
architecture-beta
service browser(internet)[Remix in the Browser]
group cdn[AWS Account]
service cft(logos:aws-cloudfront)[CDN] in cdn
group aws[AWS Account]
group vpc2[VPC] in aws
service backend3(logos:aws-rds)[Example Database] in vpc2
group vpc[VPC] in aws
service elb(logos:aws-elb)[Network Loadbalancer] in vpc
service server(logos:aws-fargate)[Remix on Fargate] in vpc
service backend2(logos:aws-s3)[Example Bucket] in vpc
group aws2[AWS Account]
service backend(logos:aws-fargate)[Example Backend] in aws2
browser:R -- L:cft
cft:R -- L:elb
elb:R -- L:server
server:T -- L:backend
server:R -- L:backend2
server:B -- L:backend3