Every write triggers a cascade. Derived values stay in sync automatically.
The reactor is built on typed, immutable data classes that chain together.
Two trigger types. One continues the cascade, the other ends it.
Every command batch enters the same loop — match, fire, repeat until settled.
Most commands pair with a matching event. A few are fire-and-forget.
Four categories cover every registered trigger in the system.
Derived values watch their dependencies and recompute automatically through the cascade.
Trace what happens when a borrower adds an income record.
Views call the reactor. The ORM bridges to the decision engine.
Three principles that explain the entire system.