radiator
radiator copied to clipboard
Extract / Separate components?
💡 Braindump, possible base for further discussion.
Splitting up the radiator core is an ongoing discussion. Two obvious candidates to discuss:
- RSS feed Generation
- Web Player configuration generation
Both candidates serve public user-facing files (XML and json) and are each just a single endpoint. Both currently use the Elixir API to get their data but could be built on the GraphQL API as well.
There are multiple options to keep them more separate, to name a few:
- inside one Phoenix project, but separate routes/controller: this is the status quo
- Umbrella apps (not sure if they go far enough as config, dependecies etc. are still shared)
- separate apps: RSS Feed generation could be its own phoenix project (or even a really thin plug+cowboy implementation) as there is really just a single endpoint. But how is it started? Through radiator core? Or some integration layer above like a docker-compose/k8s/...? How does development look like? Does it need to run in different images? How do you handle routing/ports? How does radiator core get to know what the feed URLs are?