Skip to main content

Technical background. Production and Staging environments.

The Admin dashboard is a React app that is being served from an Amazon S3 bucket. It realies heavily on AWS Amplify Library for communicating with all the other AWS services.

For our development proccess we target completely independent Production and Staging environments with as identical setups as possible. For the React app we have 2 independent Amazon S3 buckets, each of them with a CloudFront distribution associated. Each of the apps communicate with separate backend entities in each AWS service (different database, different cognito user pool, etc.), this is discussed in detail in the backend overview.

The AWS API Gateway provides an API interface for all parts to communicate with each other.

image-1648115454703.png

The pod servers will periodically send post requests to the API Gateway with the sensor data. The data is stored in a Dynamo DB table.

We want the dashboard data to be updated in real time, without the user having to refresh the web browser view to trigger a new data fetch. For this kind of real time solution (near real-time in reality) we use:

- DynamoDB Streams: that captures modifications in the DynamoDB database and stores those modifications in a log that other apps can access.