Reference architecture

Event data lake on a budget

Turn the events your platform already emits into SQL-queryable history for reporting and audits, paying mainly for storage and the queries you run.

All architectures
event-data-lake.ts
Event data lake: application services publish to EventBridge, which delivers to Firehose. Firehose converts events to Parquet using a schema from the Glue Data Catalog and writes them to S3. Athena queries S3 using the catalog, dashboards read from Athena, and lifecycle rules move old data to cheaper storage.ServicesDomain eventsEventBridgeArchive ruleFirehoseJSON → ParquetGlue CatalogTable schemaS3 Data Lakedt= partitionsDashboardsGrafana · BIAthenaSQL on S3LifecycleCheaper tiers

The problem

Teams want reporting, audit trails and analytics, but a traditional data warehouse is expensive to run and needs its own ETL. Most of the data already exists as events flowing through the platform.

Key design decisions

  1. 01

    Capture events at the bus

    An EventBridge rule forwards matching domain events to Amazon Data Firehose, so producers do not change to feed the lake.

  2. 02

    Columnar, partitioned storage

    Firehose converts events to compressed Parquet using a table schema defined in the Glue Data Catalog and writes them to date-partitioned prefixes in S3, which keeps Athena scans, and therefore costs, small.

  3. 03

    A catalog instead of a warehouse

    Athena runs standard SQL directly against S3 using the catalog's table definitions, and partition projection finds new date partitions without scheduled crawlers or servers to manage.

  4. 04

    Lifecycle rules for old data

    Older partitions move automatically to cheaper storage classes that remain queryable, and only data you no longer need to query moves to archive tiers.

Have a system to build, or a cloud bill to tame?

Tell us what you're working on. We'll come back within one business day with next steps.