Architecture & stack
StrataBI is assembled from well-understood open-source and managed AWS components rather than bespoke infrastructure. This page explains what those pieces are and how the runtime stays mostly stateless.
The application
The dashboard application is a Plotly Dash app — Dash is Plotly's Python framework for building data applications. Within it:
- Plotly renders interactive charts (the
plotly and plotly_resampler blocks).
- AG Grid powers the data tables (the
tableblock). - Dash Bootstrap Components
provides the layout grid, cards, and theming — every tile is a Bootstrap card, and themes swap without touching dashboards.
- Monaco — the editor that powers
VS Code — provides in-app editing of dashboard JSON, with the same schema that validates dashboards driving its assistance.
Dash itself runs on Flask, so the app is a standard WSGI application — nothing exotic to host.
The runtime
The application runs as a container on Amazon ECS Fargate behind an Application Load Balancer — no servers to manage, and it scales by task count.
Compute that shouldn't block the UI runs on AWS Lambda as discrete contracts:
- an async Athena runner executes queries and writes results to S3, built on
the AWS SDK for pandas (awswrangler);
- a status writer records tile status;
- module Lambdas are your own functions, invoked through the same contract.
Data and state
- Amazon Athena executes SQL over your data, using the
AWS Glue Data Catalog for table metadata. Results are handled as pandas dataframes and stored as Parquet via PyArrow.
- Amazon S3 holds dashboards, themes, and result artifacts.
- Amazon DynamoDB tracks async tile status and the
module and source registries.
Mostly stateless by design
The Fargate application holds no durable state. Dashboards, artifacts, status, and registries all live in S3, DynamoDB, and Athena/Glue — not in the running container. User sessions are ephemeral.
This has practical consequences you benefit from:
- Horizontal scaling. Any task can serve any request; add tasks to add capacity.
- Clean ownership. Everything durable is a resource in your account that you
can inspect, back up, or tear down. Nothing important is trapped inside a process.
- Disposable compute. Containers and Lambdas can be replaced or redeployed
without data migration.
Licensing
These are third-party components under their own licenses; StrataBI uses them as intended and does not redistribute them. The bundled UI themes are Bootswatch themes (MIT, © Thomas Park), included with their attribution preserved.
Shaleio