I feel like this must be something that comes up but no matter how hard I search I can’t seem to find anything.
Right now where I work we have a monolithic application and while it started as an api, it is getting bigger and bigger. It has a lot of dependencies and it is veering off its original course with web uis for feature flags and having to serve html and connect to different databases simultaneously. I decided it is high time to split this project out a bit.
At first I thought I’d make an umbrella application. That way we could have multiple projects with a thin library to pass messages in between them, develop with git submodules so that each repo causes its own deploy. But when I looked closer I realized the umbrella application is really just one node with several different applications on it, so it isn’t really simulating a distributed environment at all, it even uses the same configuration and dependencies for every project.
One advantage of a monolithic project is that for other employees that don’t use elixir, such as web developers, they just have to run one command to start it, but I definitely don’t want them to have to start and restart half a dozen different applications or worry about startup order or anything like that.
Does anyone know of any way to coordinate different nodes in one project for development purposes? I thought about using docker-compose but that’s a pretty heavy hammer and everyone would have to learn how to use it and so I’d like to avoid that if possible.