boddhisattva

boddhisattva

Resources on how to build and structure Umbrella Projects using Phoenix 1.3

Greetings everyone,

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:

  1. Lonestar ElixirConf 2017- KEYNOTE: Phoenix 1.3 by Chris McCord
  2. Elixir Umbrella - Microservices or Majestic Monolith? Georgina McFadyen - Elixir.LDN 2017
  3. ElixirConf 2016 - Building Umbrella Project by Wojtek Mach
  4. ElixirDaze 2017- Using Your Umbrella by Chris Bell
  5. Create an Elixir umbrella project containing a phoenix app and build a release with Distillery
  6. Designing scalable application with Elixir: from umbrella project to distributed system
  7. Structuring Elixir projects
  8. Dependencies and umbrella projects
  9. 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.

Thank you.

Most Liked

AstonJ

AstonJ

If you’re interested in microservices or the Replaceable Component Architecture, you might like PragDave’s online course :003:

oldpond

oldpond

He does not use umbrella projects in his course. However, he does an excellent job of factoring his application into concerns that are clear and intuitive.

AstonJ

AstonJ

He goes a step beyond umbrellas and builds his project as a series of fully independent (and replaceable) apps - pretty much everything you learn will be useful to you if you use umbrellas :023:

Bo_Gs

Bo_Gs

I have been trying to move from Ruby to Phoenix/Elixir and for me learning is by doing. Have been tinkering with Elixir but I am having a hard time trying to understand umbrella projects. Waiting on the new phoenix book but agree not enough resources :thumbsup: imo for what it is worth :003:

prodis

prodis

Two more resources about how to decide using umbrella projects:

  1. Adopting Elixir book (see “Dividing Applications” page): https://books.google.nl/books?id=F_tUDwAAQBAJ&pg=PT131&dq=adopting+elixir+“dividing+applications”&hl=en&sa=X&ved=0ahUKEwilruDj3r_eAhVJjqQKHdaFD-AQ6AEIKjAA#v=onepage&q=“dividing%20applications”&f=false

  2. Umbrellas: only when it rains? (Elixir School blog post): https://elixirschool.com/blog/umbrellas-just-when-it-rains/

Where Next?

Popular in Chat/Questions Top

wolfiton
Hi everyone, How can i retrieve the name from a structure like this? %{"id" => "1570", "name" => "Croque Monsieur"} My test loo...
New
New
InkFlo
Hi everyone, This year I’m graduated from Bachelor Degree (in computer science) from France (not really a bachelor, the exact term is “L...
New
Chawki
hi,i’m new to programming world i had learned front-end( javascript,react.js) and i wanna learn a back-end programming language i thought...
New
stevensonmt
I’d like to provide my review of the Elixir Course module from Groxio. I have some criticisms but I’d like to start with the positives. ...
New
ericmachine88
Hi all, I am currently on this course Half a way thru, and struggled a bit… sometimes I don’t even know what I am coding especially ...
New
jace
I wanted to write a library for interacting with a Web API as a practical way of learning Elixir. However, there seem to be a lot of diff...
New
shansiddiqui94
Hello, I have an interview coming up and I seem to have forgotten important concepts of Elixir. So I was wondering if you guys know of a...
New
New
AstonJ
It’s been a while since we asked this - I’m sure others (especially newcomers to the language) will be interested to hear how you’ve all ...
New

Other popular topics Top

Tee
can someone please explain to me how Enum.reduce works with maps
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: https://hexdocs.pm/ecto/Ecto.Schema.html#module-...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod -- where is this set? Thanks.
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement