Whether we want to stay with Go or migrate to another framework, we're 100% going to dump the node env. The reason being that the ORPC+React setup feels very cluttering and awkward to work with.
Either we ship a single go binary or we use something like Phoenix/RoR to handle most of the stuff we need. This includes stuff like handling multi-tenacy stuff.
Opting for Phoenix because:
- Ecto is genuinely good at multi-tenancy and schema flexibility
- LiveView makes building admin panels and dynamic UIs easier without heavy frontend rewrites
- OTP/processes are great for running isolated ETL jobs per tenant
- Let's say amsterdam is out, utrecht still runs
- Database partitioning is well-trodden (prefix-based schemas, separate databases, whatever)
I've already used Phoenix for another project and it seems to suffice our needs.
Phase 1 would be smth like:
- Keep Go ETL initially, call it from Phoenix (GenServer scheduled jobs)
- Eventually rewrite the ETL to elixir
- Frontend can stay React or migrate to LiveView incrementally
Whether we want to stay with Go or migrate to another framework, we're 100% going to dump the node env. The reason being that the ORPC+React setup feels very cluttering and awkward to work with.
Either we ship a single go binary or we use something like Phoenix/RoR to handle most of the stuff we need. This includes stuff like handling multi-tenacy stuff.
Opting for Phoenix because:
I've already used Phoenix for another project and it seems to suffice our needs.
Phase 1 would be smth like: