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.
For the past 6 years Luís has worked on the web, mainly using Ruby and RoR, on @subvisual, a company he helped create. He enjoys open source and giving back to the community. He’s taught Rails to over 500 people, with workshops, university classes, mentoring and even 1-1 coaching. He loves experimenting with new, fun programming languages, from Haskell to Elixir or even Crystal.