Talks
Speakers
Events
Topics
Search
Sign in
Search
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
search talks for
⏎
Suggest modification to this talk
Title
Description
As much as Rails is all in on Convention over Configuration, there comes a point where there is just so much code, such intricate relationships between classes and such complex business requirements that conventions don't seem to fit anymore. It seems like the only solution is to abandon the Majestic Monolith and use micro services. However, there is an answer to this. An answer that's been there for a very long time, right under our noses. One that allows Ruby on Rails developers to keep growing a beautiful, sustainable and scalable Monoliths and ride with them to the sunset. The answer is Rails Engines. Like… Devise or Spree? Not quite. In this talk you'll learn a whole new perspctive on Rails Engines; a much lighter and leaner way to use them that allow teams to break up their app into meaningful modules without losing the beauty of Rails' conventions. Sprinkle in the Packwerk Gem by Shopify for the perfect combo to scale your domain and your team.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk titled "All You Need is Rails (Engines) - Compartmentalising Your Monolith" presented by Julián Pinzón Eslava at RubyConf AU 2023, the speaker explores the challenges faced by Ruby on Rails developers when dealing with large, complex applications known as monoliths. While conventional wisdom suggests moving towards microservices when applications become too unwieldy, Eslava presents an alternative solution: using Rails Engines to manage complexity without abandoning the monolithic architecture. ### Key Points Discussed: - **Understanding Rails Engines**: Eslava describes Rails Engines as a better way to modularize applications, allowing teams to break down their code into meaningful modules while preserving Rails' conventions and efficiency. - **Personal Journey**: He shares his background as a musician turned software engineer, reflecting on how his design sensibilities guided his approach to software development. - **Challenges of Monoliths**: The presentation highlights how the growth of applications often leads to overwhelming complexity, where adhering strictly to Rails conventions can hinder maintainability. - **Role of Namespace**: Introducing new namespaces within the application can lead to technical debt, a scenario many Rails developers find themselves in as features expand awkwardly. - **Comparison to Norman Doors**: Eslava uses the concept of poorly designed doors to illustrate the importance of clear structure and intuitive code navigation, paralleling this to Rails applications that can sometimes mislead developers. - **Avoiding Complexity**: He discusses the misconception around Rails scaling and emphasizes the importance of understanding code organization when attempting to grow an application. - **Structural Modification with Engines**: Eslava details his experiments with decompressing the traditional app structure into a modular format using Engines, advocating for an approach where domain responsibilities are separated yet remain within a single application. - **Packwerk Gem**: To support the modular architecture, he advocates using the Packwerk gem, which helps maintain clean, organized code by establishing clear boundaries and relationships between modules. - **Practical Implementation**: Eslava encourages implementing Engines in multi-application setups, presenting a structure where various Engines can work seamlessly together. - **Conclusion**: Eslava believes that adopting this modular structure, facilitated by Rails Engines and Packwerk, will not only streamline development but also make it easier to Extract components into standalone applications in the future. He expresses a strong desire for such methodologies to become widespread within the Rails community. Overall, the talk challenges common beliefs about scaling Rails applications and offers a path towards a sustainable monolithic architecture that leverages the powerful features of Rails Engines.
Suggest modifications
Cancel