Description
The Mix tool can help us create Elixir mono repo.
An Elixir umbrella project is a collection of Elixir applications that are grouped together under a single umbrella project. An umbrella project can contain one or more Elixir applications, each with its own dependencies, configuration, and codebase. The idea behind an umbrella project is to allow multiple Elixir applications to be developed and managed together as a single project.
Whatâs better about this method or library
Split our code into multiple apps and make our Elixir projects more manageable as they grow
An umbrella project provides several benefits, such as:
- Code organization: An umbrella project allows developers to organize their code into smaller, more manageable applications, each with its own functionality and purpose.
- Dependency management: An umbrella project allows for better dependency management between applications, as dependencies can be shared between applications in the project.
- Consistency: An umbrella project ensures consistency across multiple applications, as they can share common configuration and development practices.
- Scalability: An umbrella project allows for scalability, as new applications can be easily added to the project as needed.
- Code reuse: An umbrella project allows developers to reuse code between applications in the project, reducing duplication and promoting code modularity.
In summary, an Elixir umbrella project is a powerful tool for managing multiple Elixir applications together under a single project, providing better code organization, dependency management, consistency, scalability, and code reuse.
What can we do with it
Elixir micro-service and mono repo
How should we adopt it
- We can migrate the big Elixir phoenix project to an umbrella project by Mix tool and then split it into multiple services as our scope