start w/ plain ole postgresql with replication
RLS should work for visibility on rows
- we will need to set (session variables)[https://stackoverflow.com/questions/50589871/postgresql-row-level-security-with-session-variable] with visibility keys
- we will need to write a (policy)[https://dba.stackexchange.com/questions/129869/optimize-row-level-security-expression-in-postgres] to apply those keys to the row vis key.
Ageing data off.
- Partion Day 1: https://www.postgresql.org/docs/current/ddl-partitioning.html
- probably use a join table to remove old data from queries
if we need it we could try Citus