Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Imagine that you want to build a system which depends on external service, e.g., logistics, payments or notifications service. These systems have its life-cycle which you have to be in sync with. Sergey will share how to treat issues you could face, using the examples of DHL, UPS, Zoho, eBay integrations. Sergey is an experienced Software Developer interested in building a strong and sustainable community around OSS and likes to discuss different ways to profile, debug and optimize applications. He also loves dogs and is a drummer and musician.
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
The video, titled "Dirty Magic for Resilient API Dependencies," presented by Sergey Dolganov at RubyConf TH 2019, explores strategies for effectively managing dependencies on external services within software architecture, particularly in microservices and single-page applications. Key points discussed throughout the video include: - **Introduction to the talk's relevance**: Sergey emphasizes the commonality of external dependencies such as logistics and payment systems and how the discussed concepts can be applied to any distributed systems. - **Background of the speaker**: Sergey shares his location in Saint Petersburg, his commitment to open-source solutions, and his work with eBay Mac, a project heavily reliant on API integrations. - **Challenges with API integrations**: He recounts a specific eBay integration issue where incomplete data led to significant problems, resulting in the realization that external systems could introduce instability in applications. - **Contracts approach**: Sergey introduces the concept of 'contracts' in relation to software design, highlighting the importance of preconditions, postconditions, and invariants to better manage API interactions. This approach allows for fallback mechanisms when data fails validation, minimizing disruption. - **Integration experiences**: He shares specific integration stories with DHL, illustrating how initial oversights led to system errors and how they adapted by refining their validation processes, eventually giving rise to a structured pipeline for handling API requests. - **Development of policies and validation**: Sergey discusses how they implemented a system of 'policy objects' for more complex validation logic and how tracking success and error rates aided in refining their approach. - **Use of functional programming**: Through learning about functional programming, specifically Haskell, he discovered methodologies that enhanced their error processing and validation strategies, leading to a more elegant solution architecture. - **Future advancements**: Sergey cites plans for continuous evolution, focusing on methods like sagas for managing distributed transactions and developing tools and libraries to support better event processing in a Ruby context. In conclusion, Sergey highlights the importance of creating resilient API integrations, emphasizing the necessity of understanding contract obligations with external APIs and leveraging advanced coding techniques to ensure user experience is preserved despite external failures. He encourages further exploration of resources on functional programming to deepen understanding of the discussed concepts.
Suggest modifications
Cancel