Contract Driven Development: The Death of Integration Hell
In a complex, interdependent eco-system, where each service is evolving rapidly, we typically end up with an Integration Hell .i.e. the myriad problems that occur when API integrations break down
- Provider and consumer integrations break when their understanding of the API endpoints are out of sync
- Working integrations break when the API developer makes a change without informing the consumer
- Development and testing slow down when the consumer depends on the provider API running in a staging environment:
- The network may be down
- The environment hosting the API may be down
- The staging API may crash, or may not even be started
- Development can be delayed if the staging API is not kept up-to-date
- API changes can come in at the last minute, resulting in breakage on the consumer side
- The provider API may break backward compatibility, resulting in breakage on the consumer
Instead, what if we could make the dependencies between the provider and consumers explicit in the form of executable contracts. These executable contracts provide a common, clear definition of their API endpoints. They give instantaneous feedback about accidental breakage to the teams so that they can work independently. These executable contracts are:
- Kept up-to-date and acts as a single source of truth
- Used for service virtualisation, keeping consumers in sync with the contract
- Run as tests against the provider API to validate it's request and response type definitions
- Tightly integrated with CI
- Capable of pinpointing any backwards-incompatible changes to the contract
This is Contract Driven Development, and it heralds the Death of Integration Hell.
Here's a sample contract:
This session will demonstrate all the key points of Contract Driven Development as implemented by the teams using an open-source tool called Qontract.
Outline/Structure of the Talk
- Contract-driven development using Qontract - 10 mins
- Test-drive your APIs using executable specifications - 10 mins
- Backward compatibility verification - 10 mins
- Service virtualisation - Isolate yourself from downstream dependencies - 10 mins
- Sharing and versioning your contracts seamlessly - 5 mins
- CI/CD pipeline Integration - 10 mins
- Next Steps and Q&A - 5 mins
- Learn how to define better contracts between two services (provider and consumer-driven contracts)
- Discover how to capture those contracts as executable specs
- Understand how contract tests can prevent the provider from accidentally breaking the consumer
This session would make most sense for teams actively building and testing large complex systems with multiple dependencies. If you are building a system using microservices architecture, then definitely you'll benefit from this session.
schedule Submitted 5 months ago
People who liked this proposal, also liked:
Nico Gonzalez / Ashley Beattie - The AI Learning Flow: using agile & design thinking to develop human-centric AI solutionsNico GonzalezHead of Applied InnovationAgile by DesignAshley BeattieAgile Coach and DevOps Transformation LeadAgile By Design
schedule 5 months agoSold Out!
As Artificial Intelligence takes on a foundational role in tackling complex prediction problems, organizations are increasingly investing to adopt this technology hoping to obtain extraordinary results. However, less than 7% of AI initiatives ever reach production. Part of the challenge is that organizations drastically underestimate the inherent challenges in developing effective AI products. While AI is often seen as a threat to replace us all, the most valuable implementations of AI within the workplace take a human-centric approach and focus on augmentation, not replacement.
In this talk we introduce the “AI Learning Flow”, an agile and design thinking-inspired, human-centric perspective to help teams understand and navigate the challenges inherent to AI product development. This will help you:
- Deeply immerse yourself into the user's context and derive insights into the prediction problems they face
- Co-create value models with your users and stakeholders, taking accuracy economics, training data governance, prediction ethics, and judgment enhancement into consideration.
- Continuously identify, prioritize and validate assumptions through thinly sliced experiments to minimize risk and/or uncertainty.
Ashley Beattie / Fayyaz Hemani - Gamifying your Agile "AHA" moments (in times of COVID) - How we're using games to introduce Agile Fundamentals in a remote contextAshley BeattieAgile Coach and DevOps Transformation LeadAgile By DesignFayyaz HemaniAgile CoachAgile By Design
schedule 5 months agoSold Out!
For years the Agile community has leveraged games to playfully introduce and reinforce Agile learnings. Whether it's the coin game, the ball-point game, getKanban or another of the myriad of Agile gaming options, the immediately relatable AHA! moments give us new perspectives and insights to apply to our day-to-day lives.
But... we played them in person... Which, as we all know, has become increasingly difficult in 2020.
In this talk we will take you along with us on our journey at a large (familiar, yet un-named) financial institution where we have been developing new and innovative ways to deliver interactive, fun Agile Fundamentals training in a remote setting.
During the talk we will interactively take trainers and learners through:
- what we used to do vs. what we have been doing for the past 7 months
- which games we've developed and/or modified to suit the remote setting
- which principles flow seamlessly and which can be challenging to translate into the remote context
- what we've learned to date and where we're still challenged
We might even play a game or two ;)