The README example:
table us_states
column state_code char(2) primary key
column state_name varchar(20)
column children_count integer count child_table
table child_table
column child_id serial primary key
fk us_states references us_states pushes child_table
column state_code is us_states.state_code
column state_name sync us_states.state_name
Denorm colocation of external values with derived values offers very high compression of logic definitions.It's a "pay me now" trade. The write is more expensive in exchange for simpler modeling, simpler reads and writes, simpler stack.
The builder traps cycles, so we get termination. Builds are idempotent and additive, any-state to current. Ranged foreign keys are first class citizens (not just time series). Derived values are not subvertible. Race conditions and deadlocks eliminated (*except generating children can produce deadlocks the client must handle).
If you already have Postgres installed, you can get something usable in 10-20 minutes following the README.
KenPainter•41m ago
I came to this 20+ years ago as I was not satisfied with orthodox solutions to the tension of between normalization and the inherent need to generate derived values from the normalized ones. In 2002 I wrote a passable version in PHP and made my living with the approach until about 2009.
Last year I reasoned if LLM's were truly capable, I could make a far more robust and capable version in Typescript. This is the result, after several iterations.