Understanding Elixir Umbrella Applications for System Architecture

311
clicks
Understanding Elixir Umbrella Applications for System Architecture

Source: youtube.com

Type: Video

In this talk, Georgina McFadyen explores Elixir Umbrella applications, which allow developers to structure large, complex systems into manageable subcomponents within a single repository. She discusses the pros and cons of this approach compared to traditional microservices or a monolithic application structure. The speaker introduces the concept of Elixir Umbrella applications, demonstrating how to create and manage subprojects within this structure. She also delves into various challenges encountered during her side project, Ferris, such as dealing with Elixir version requirements, circular dependencies, transient dependency clashes, namespace collisions, test data cleanup, and configuring tests to avoid external dependencies. The talk further covers the ease of changing project structures within an Umbrella application, the flexibility of deployment options, and how little change is required to move from deploying to a single node to a distributed setup. McFadyen ends by discussing deployment considerations using tools like Distillery and shares experiences with transitioning to distributed nodes and the slight changes needed to accomplish this. Ultimately, McFadyen suggests that while Elixir Umbrella applications exhibit some monolithic traits—like being housed within one repository—they still maintain relatively loose coupling between components, similar to microservices. She concludes that they bridge the benefits of both microservices and monolithic architectures, coining the term "majestic microservices" and advocating for developers to explore Umbrella applications to determine the best fit for their projects.

© HashMerge 2024