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 and plotly_resampler blocks).

provides the layout grid, cards, and theming — every tile is a Bootstrap card, and themes swap without touching dashboards.

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:

the AWS SDK for pandas (awswrangler);

Data and state

AWS Glue Data Catalog for table metadata. Results are handled as pandas dataframes and stored as Parquet via PyArrow.

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:

can inspect, back up, or tear down. Nothing important is trapped inside a process.

without data migration.

Note
"Mostly" stateless: short-lived runtime coordination (for example, the async status a tile polls while a query runs) is recorded in DynamoDB with a TTL, not held in the app. There is no session database to manage.

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.