Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
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 'Building Resilient API Dependency,' Sergey Dolganov discusses methods for creating robust distributed applications through the implementation of contracts and sagas. He introduces the concept of maintaining stability in complex systems by enforcing rules for inputs, outputs, and state changes in interactions with external APIs. Key points include: - **Introduction to Contracts**: Dolganov outlines the contracts approach which consists of preconditions, postconditions, and invariants, allowing developers to control functional blocks and manage errors more gracefully in distributed systems. - **Real-World Application**: He shares the evolution of their project 'eBay Mac' which helps users sell products globally. The project initially faced challenges with DHL API integrations leading to the realization that external systems might behave unpredictably. - **Policy Objects**: The introduction of policy objects simplifies error handling and validation, providing a framework for managing API integrations and ensuring logic integrity. - **Implementing Sagas**: Dolganov explains the concept of sagas as a method to manage complex transactions across distributed systems. He describes an orchestration approach for rollback in case of failures, enhancing the reliability of interactions with services like Russian Post. - **Event Sourcing**: The discussion includes how event sourcing is used to maintain records of actions and their outcomes, allowing the system to recover gracefully from interruptions. - **Functional Programming Concepts**: He reflects on the exploration of functional programming, specifically Haskell, to improve validations and error handling in their Ruby environment. Using algebraic data types and refinement types leads to clearer business logic representation. - **Future Work**: Dolganov concludes by highlighting the need for ongoing improvements, particularly in releasing tools to enhance transaction handling in Rails applications. He emphasizes that they aim to open source these tools once fully developed, alongside suggesting impactful reading materials related to chaos engineering and functional programming. Overall, Dolganov's insights shed light on effectively managing dependencies in distributed systems, encouraging a mindset that embraces experimentation and debugging in production environments.
Suggest modifications
Cancel