Kousa will roughly follow the HyperHypeBeast hexagonal, or "functional core" architecture:
https://www.youtube.com/watch?v=yTkzNHF6rMs
Elixir contexts
Beef
- Database, persistent state for Kousa
Beef.Access
nonmutating queriesBeef.Changesets
ingress validation logicBeef.Mutations
mutating queriesBeef.Queries
composable Ecto.Query fragmentsBeef.Schemas
database table schemasBeef.Lenses
database struct logic
Onion
- OTP-based transient state for KousaBroth
- Web interface and contexts
Broth.Messages
- contracts for all ws I/O
Kousa
- OTP Application, Business Logic, and common toolsets
NB: All of the module contexts will be part of the :kousa
BEAM VM
application under the application supervision tree