Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Our monolithic apps are evolving into ecosystems of connected services. It's becoming quite common for Rails apps to be working mainly as clients to other services. In this talk we'll cover tools and techniques for a happy and productive existence when your Rails app is acting as a front end to other services. Pete Hodgson is a lead consultant with ThoughtWorks. He helps teams get more awesome by delivering quality maintainable software at a sustainable pace, using agile practices like test-driven design, pairing and continuous delivery. Help us caption & translate this video! http://amara.org/v/FG0w/
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 presentation "Rails as an SOA Client" delivered by Pete Hodgson at RailsConf 2014, the evolution of Rails applications from simple monolithic constructs to complex systems interacting with multiple services is explored. As organizations increasingly deploy Rails apps within enterprises, these applications now often serve exclusively as front-end clients for various services. **Key Points Discussed:** - **Monolithic to Microservices Shift:** Initially, Rails apps directly communicated with a single database but are now being restructured to interact with numerous external or internal services. - **Ecosystem Co-dependence:** Hodgson highlights the struggle of co-dependence when a Rails application relies heavily on other services and the challenges this presents in testing and debugging. - **Team Dynamics and Conway's Law:** He examines how software architecture reflects team communication structures, suggesting that teams should optimize interactions to reduce bottlenecks in development. - **Strategies for Independence:** The approach to managing application dependencies includes using fake services to maintain operational independence during testing, allowing developers to test in isolation without needing the entire service infrastructure. - **Contract Testing:** The implementation of contract tests helps define clear expectations between teams about service interactions, minimizing misunderstandings that arise from outdated API documentation. - **Service Gateways:** Hodgson discusses building service gateways with the Faraday gem, enabling better management of requests and responses within the application, while simplifying the complex technical processes involved in data handling. - **Hexagonal Architecture:** The talk emphasizes hexagonal architecture principles to decouple domain logic from technical concerns, enabling a cleaner focus on business objectives without being bogged down by technical details. - **Caching and Performance:** Hodgson proposes using HTTP caching headers to enhance performance in Rails applications, equating API behavior to web browsers' handling of cachable content, enabling dynamic caching strategies driven by the respective team’s understanding of the data. - **Embracing Web Principles:** Finally, Hodgson argues for leaning into established web practices such as REST and hypermedia to create more resilient distributed systems. **Conclusions and Takeaways:** This presentation stresses the significance of adapting Rails applications to effectively interface with numerous services while promoting independence among development teams. The methods discussed present both strategic insights and practical tools that developers can implement to navigate the complexities of software development within service-oriented architectures.
Suggest modifications
Cancel