At my current workplace we’re evaluating different ways of building a microservices architecture for some parts related to our existing apps and with the Umbrella apps approach it looks like one doesn’t necessarily have to manage them in separate repositories, release management also gets easier(in terms of which PR’s get merged first) and I believe one can also take the advantage of having all microservices in one language(if Elixir is a good fit for a given problem at hand) and still having good amount of separation of concerns.
I’ve been able to find this information by looking up some of the below resources and videos around Umbrella Projects:
- Lonestar ElixirConf 2017- KEYNOTE: Phoenix 1.3 by Chris McCord
- Elixir Umbrella - Microservices or Majestic Monolith? Georgina McFadyen - Elixir.LDN 2017
- ElixirConf 2016 - Building Umbrella Project by Wojtek Mach
- ElixirDaze 2017- Using Your Umbrella by Chris Bell
- Create an Elixir umbrella project containing a phoenix app and build a release with Distillery
- Designing scalable application with Elixir: from umbrella project to distributed system
- Structuring Elixir projects
- Dependencies and umbrella projects
- Umbrella Projects - Elixir School
From my research so far, I’ve found that there are hardly enough books, tutorials that cover best practices around building umbrella apps from ground up in at least some more depth in a step by step manner and having more materials(Books, Tutorials, Best Practices, Tips, Lessons learnt and other resources) around this would be really helpful at a time when we’re considering an umbrella app structure as a way of doing things. In the meantime, I plan to also learn more about umbrella projects from my end via trial and error.
Currently, I plan to closely follow the questions related to Umbrella projects based on those that have the umbrella tag as part of Elixir Forum and also follow relevant questions via other platforms like - Elixir lang Slack, Stack Overflow etc.,.
If there any books, tutorials, best practices, tips, lessons learnt the hard way(this can be really valuable to fellow readers like me) and other gotchas that you think could be worth sharing from your experiences of building an umbrella project at your workplace or through your side projects, please do share them here via relevant links or your own experiences as a reply to this thread here as I think we all could benefit from each others experiences given that there are limited resources/documentation available on this topic currently.
Also if you’re planning to write a new blog on your experience of building an Umbrella project, please do link to those posts as part of this thread.