Gary Rennie

Gary Rennie
Phoenix Core Team Member

Controller Control: Designing Domains for Web Applications

Structuring applications can be tricky. The defaults that are generated by Phoenix are great for getting up and running quickly, however as an application grows, certain parts of the code may need to be split out into their own modules.

In this talk we will take an existing application that was built using the default Phoenix project structure and generators, and look at ways of restructuring it so that each piece of functionality of the application has its own logical place in the code. We will investigate moving code from controllers, channels and sockets into their own domains and how to interact with these domains.

We will also look at how this structure lends itself to umbrella applications and how to convert our application to use an umbrella application. We will investigate techniques that encourage isolation between applications and look at some ways to move large sections of code between OTP applications in the umbrella project.


Talk objectives:

  • Understand the benefits and drawbacks of different ways to structure an application
  • Describe how Phoenix is the interface to the application and not THE application
  • Explore the benefits of using an umbrella application

Target audience:

  • Developers interested in designing contracts for their (web) applications

Gary is a member of the Phoenix core team, often found answering questions on Stack Overflow for the elixir and phoenix-framework tags. He is developer at VoiceLayer using Elixir and Phoenix full-time.

Back to conference page