Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Going full SOA has unarguable benefits, but the steep startup cost and need for excessive forward planning goes against the agile mentality of strictly necessary, small, incremental changes. At Lumosity, we've developed a set of best practices using engines to entirely divide behavior and responsibility by wrapping new services within well-defined, small Ruby APIs. This technique obviates the need for complex network (HTTP) APIs with their well-known problems of maintenance and testing. Get rid of spaghetti code without diving into the deep end of recorded responses and fake servers. Later, if the architecture demands a separate service, the engine will already have an API fully defined and ready to port over from Ruby to HTTP. Help us caption & translate this video! http://amara.org/v/FG7l/
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
This video features a presentation by Anthony Zacharakis and John Wilkinson from Lumosity at the GoGaRuCo 2013 conference, where they discuss efficiently implementing service-oriented architecture (SOA) to mitigate the complexities associated with large Rails applications. They introduce the concept of 'embedded engines' as an effective solution for managing application complexity. Key points include: - **Challenges of SOA**: The presenters explain their previous experience with SOA, which led to numerous unexpected bugs and increased development friction due to the complexities of managing multiple repositories, legacy code, and the need for deeper understanding of interdependencies. - **Embedded Engines**: They propose the use of embedded engines as a middle ground between simple namespace lib modules and the full SOA approach. Engines encapsulate certain functionalities, allowing developers to build separate controllers and models while integrating them into the main Rails application without the overhead of managing separate servers or repositories. - **Isolation Benefits**: The presenters highlight the benefits of isolation provided by embedded engines, which allows for better testing practices, limits dependency issues, and accelerates development cycles. They emphasize that this structure helps developers maintain focus on their respective features without entangling with the entire application. - **Implementation Techniques**: Anthony and John share practical techniques for transitioning to embedded engines, including managing data and configurations between the main app and the engines, as well as ensuring clear public behaviors to prevent tight coupling. - **Conclusion and Recommendations**: They conclude with the observation that adopting embedded engines can significantly enhance efficiency, maintainability, and collaborative development efforts, recommending that larger and older applications move towards this architecture early in their lifecycle for optimal results. Their experience at Lumosity resulted in over a dozen embedded engines being established within their app, showcasing the success of this approach for maintaining code quality and enhancing agility. Ultimately, the presentation encourages viewers to consider embedded engines as a viable architectural pattern to streamline development, reduce complexity, and improve overall application performance.
Suggest modifications
Cancel