Umbrella Apps - Winter is coming
Yeah, that was a bad pun, but on this talk we’ll go over how to build an umbrella app in Elixir and Phoenix. As a bonus we’ll also cover a few of the differences between umbrella apps and microservices as well as how the Elixir community is moving towards a more thoughtful architecture for apps.
Outline/Structure of the Talk
Umbrella apps are a type of Elixir (and Erlang) application that allow you to have nested OTP applications as part of the same bigger ecosystem. You can think of them as a sort of microservice architecture in which the bulk of the infrastructure work is handled for you by the VM. It makes super nice and easy to handle inter dependencies, integration testing, different scaling needs, distribution, etc… A part of extracting multiple apps is thinking where to define the boundaries, that’s where DDD, bounded contexts and aggregates come into play, and even though they are not something that came out of the Elixir or Erlang communities is something that is being discussed a lot as a way to build more maintainable, scalable and adaptable application.
Having come from the Rails world, this separation of concerns and clear cut boundaries was something somewhat foreign to me, but it has been extremely fun to learn and think about this things. Also, I believe I have taken some of this into my Rails’ apps, making them more modular and less coupled, even if still drinking the whole majestic monolith kool aid. That's what I hope people will come out of the talk with, a sense that it's good to think about this things and to question the status quo.
Anyone that is interested in talking and thinking about structuring applications for the long haul