Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
This video was recorded on http://wrocloverb.com. You should follow us at https://twitter.com/wrocloverb. See you next year! Building services and integrating them into Rails is hard. We want smaller Rails apps and nicely encapsulated services, but services introduce complexity. If you go overboard in the beginning, you're doing extra work and getting some of it wrong. If you wait too long, you've got a mess. At Yammer, we constantly clean up the mess that worked well in the early days, but has become troublesome to maintain and scale. We pull things out of the core Rails app, stand them up on their own, and make sure they work well and are fast. With 20+ services, we've learned some lessons along the way. Services that seem clean in the beginning can turn into development environment nightmares. Temporary double-dispatching solutions turn into developer confusion. Monitoring one app turns into monitoring a suite of apps and handling failure between them. This talk looks at our mistakes and solutions, the tradeoffs, and how we're able to keep moving quickly. Having services and a smaller Rails codebase makes for scalable development teams, happier engineers, and predictable production environments. Getting there is full of hard decisions -- sometimes we're right, sometimes we fuck it up, but we usually have a story to tell.
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 video titled "Services and Rails: The Shit They Don't Tell You" presented by Brian Morton at the wroc_love.rb 2013 conference, the discussion centers around the complexities of building services and integrating them into Rails applications, specifically drawing from the experiences at Yammer. Morton explains the tension between wanting to create smaller, more encapsulated Rails applications through services while navigating the added complexities that come with them. Key points emphasized throughout the talk include: - **Service-Oriented Architecture**: The importance of breaking down monolithic apps into manageable services to improve scalability and maintainability. - **Incremental Transition**: The necessity of gradual extraction of features and components to optimize performance and scalability without overwhelming developers. - **Loose Coupling**: Developing services that allow teams to work independently, reducing the complexity of large-scale deployments and enhancing collaborative efforts across different teams. - **Organizational Changes**: The adoption of cross-functional teams to mitigate the pitfalls of siloed knowledge and improve responsiveness to project needs. - **Real-World Challenges**: Sharing Yammer's experiences with difficulties in managing data integrity, performance during transitions, and the implications of using dual data storage strategies. Morton illustrates these points with specific examples from Yammer's architecture, including their approach to search functionality and how they navigate technological swaps without service disruption. He discusses critical concepts like Conway's Law, emphasizing that organizational structure affects service development. Another significant takeaway is the acknowledgment of iterative learning from mistakes which ultimately leads to more robust systems. The talk concludes with an emphasis on the balance between service complexity and the benefits they provide, encouraging a mindset shift in approaching service architectures as applications grow and evolve. The audience is encouraged to engage with the challenges and potential solutions as they navigate similar paths in their software development processes.
Suggest modifications
Cancel