Projections get their name from
Euclidean Geometry but are probably more analogous to a relational database view. The concept is very simple in RIDDL: projections gather data from entities and other sources, transform that data into a specific record type, and support querying that data arbitrarily.
Projections transform update events from entities into a data set that can be more easily queried. Projections have handlers that specify both how to apply updates to the projections state and satisfy queries against that state. A projection’s data is always duplicate and not the system of record for the data. Typically persistent entities are the system of record for the data.