gRPC ingest, append-only durability, and automatic Parquet projections for full history (_events) and latest state (_current).
┌──────────┬──────────┬───────────┐ │ id │ status │ plan │ ├──────────┼──────────┼───────────┤ │ user_123 │ pending │ free_tier │ └──────────┴──────────┴───────────┘
Architecture for Ops. Analytics for Free.
Forget generic "Big Data" clusters. Reflog is a single Rust binary. No JVM, no ZooKeeper, no headaches. Just run ./reflog-server and start ingesting.
Get two query shapes from one ingest path: _events for immutable history and _current for latest entity state.
Reflog writes standard Parquet outputs so your data stays portable across DuckDB, Spark, Polars, DataFusion, and warehouse/lakehouse tooling.
Segmented processing, checkpoints, and crash-recovery patterns keep ingestion simple while projections remain reliable and deterministic.
Reflog keeps the write path lightweight while producing analytics-ready outputs. Events flow through append-only segments and are projected in the background to query-friendly Parquet tables.
_events and _currentReflog isn't just about moving bytes. It's about unlocking the value trapped in your application's history.
Use the Web UI to browse entity types, inspect records, and see full change history without building custom dashboards first.
Build feature pipelines from the same Parquet projections used in production analytics. Combine event history and latest state for reproducible training sets.
Rebuild projections from append-only history when logic evolves. Deterministic processing makes validation and backfills safer as schemas or downstream models change.
Investigate incidents with both views: trace exact event history from _events and confirm current truth in _current. Query with your existing SQL tools.