Skip to content

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