Having built two production, scaled evented systems over the last decade, I don’t see the need for this. Properly designed events flatten to a table schema in a regular DB quite easily. Tools like Trino/Presto and therefore Athena, let you deep query on a JSON field, as well (e.g. against a Parquet-based event store on block storage), so if you use a standard envelope, the bodies are all still available without having to provide the schema for every event. This works to quite huge amounts of data given that you do rollups and/or snapshots.
4 comments