Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Kelly Sutton In the recent years, microservices have been an investment among many engineering teams as they scale. They are often the default of many new companies. But how has that gone wrong? This talk will dive into how one company of ~100 engineers refined their thinking and their Rails app for the better. Kelly Sutton is an engineering manager at Gusto. In the past, he helped create LayerVault, Designer News, and a blog for college students. He is currently based in San Francisco, CA. He regularly writes blog posts about software engineering at https://kellysutton.com #ruby #rubyconf #rubyconfau #programming
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 this talk, Kelly Sutton discusses 'Taming Monoliths Without Microservices' focusing on challenges faced by teams managing large Rails applications. The session begins with a brief introduction of Sutton and the context of his experience at Gusto, a company processing significant financial transactions and managing a substantial codebase. Key points include: - **Rails Monoliths vs. Microservices**: While microservices are popular, Sutton emphasizes the complexities of maintaining a large monolith without fragmentation. - **Trade-offs**: At Gusto, correctness is prioritized over performance when handling payroll. Decisions on data caching exemplify this trade-off. - **Understanding the 'Swamp'**: Sutton illustrates the idea of a 'swamp,' referring to a large, complex codebase where modifications can be overwhelming. - **Modularization**: The need for breaking down monoliths involves identifying key models; Sutton highlights issues with models when their relationships become overly complicated. - **Domain-Driven Design**: The presentation touches on modularization through clearer structuring of HR services within their payroll system. - **Clear Boundaries**: Delineating boundaries between HR and payroll helps manage complex relationships and reduce confusion across teams. - **Avoiding Circular Dependencies**: Sutton advises against circular dependencies in code as they complicate maintenance. - **Using Value Objects**: Rather than relying solely on Active Record objects, Sutton suggests using value objects to simplify dependencies. - **Service Objects Over Callbacks**: By using service objects, Sutton advises against callbacks due to their potential complications in large applications. - **Incremental Changes**: Suggests a careful approach to implementing changes, emphasizing that extensive modifications may require numerous pull requests and team communication. In conclusion, Sutton reinforces the notion that restructuring a monolith is essential for long-term maintenance and efficiency. He encourages patience and gradual implementation of strategies while maintaining clear communication within teams. The session wraps up with a quote from Kent Beck, emphasizing the importance of making significant changes manageable. Overall, the talk serves as a guide for engineering teams navigating the complexities of legacy Rails applications without diving into microservices.
Suggest modifications
Cancel