Grain keeps dashboard aggregates pre-computed and up to date inside your own Postgres database. You declare the grain of an aggregate once — tenant, time bucket and dimensions — and database triggers record what changed so a worker can rebuild just the affected cells, instead of recomputing everything on a schedule. No new infrastructure, no materialized view refresh storms, and a verify command that proves the aggregate still matches its source.
Required Ruby Version
>= 3.2.0
Authors
Oscar Ortega