SlideShare a Scribd company logo
Keep Your Contracts in Check:
Design and Evolution of APIs in
Microservice Architecture
About Me
• .NET Developer at Lohika
• 5+ years of commercial
experience
• 3+ years at Lohika
• Participated in development of 4
microservice-based systems,
from 3 to 20+ services each.
• Ways of interservice communication and how not to get lost with
your options.
• API First development and how it can save time in multi-team
environment.
• SwaggerHub as a single Point of truth for REST API
• Best practices for gRPC contracts and how to deal with changes in
them.
• Kafka Schema Registry - contract coordinator for different
messaging scenarios
Agenda
Tourist Agency Application
Happy Monolith Past
SQL
TripPlanningService
CustomerService HotelBookingService
CarRentalService
Bright Microservice Future
SQL
TripPlanningService
CustomerService HotelBookingService
CarRentalService
SQL
Mongo
DB
????
Synchronicity
• Synchronous protocol
• Asynchronous protocol
Number of
receivers
• Single receiver
• Multiple receivers
Communication types
Synchronous protocol ≠ Synchronous Communication
Client
Trip Planning
Service
Car Booking
Service
Customer
Service
HTTP Sync
Request
HTTP Sync
Response
HTTP Sync
Request
HTTP Sync
Response
HTTP Sync
Request
HTTP Sync
Response
Client
Trip Planning
Service
Car Booking
Service
Customer
Service
HTTP Sync
Request
HTTP
Polling
HTTP
Polling
HTTP Sync
Response
HTTP
Polling
HTTP Sync
Request
HTTP Sync
Response
Number of Receivers
Single Receiver - Command
• At Least Once delivery
• Exactly Once processing
• Order of execution is important
• Producer expects to receive
response
Multiple Receivers - Event
• Fire and Forget
• Louse Coupling between
producers and consumers
Trip Planning
Service
Car Booking
Service
Book a car for
specific dates
Customer
Service
Car Booking
Service
Trip Planning
Service
Hotel Booking
Service
Customer Info
Changed
Who Owns the Contract?
Single Receiver - Command
• The inbound queue identifier
• The format of the processed
command types
Multiple Receivers - Event
• The topic identifier
• The format of all emitted
events
Command Model
Consumer Producer
Business Logic Implements business Logic Triggers business logic
Quantity Always one Often many
Autonomy Can run on its own Fails if no consumer
Consumer owns the contract
Event Model
Consumer Producer
Business Logic Implements business Logic Reports an event
Quantity Usually many Only one
Autonomy Subordinate to producer Can run on its own
Producer owns the contract
Development Approaches
Code First
Contract First
Code First
Team Gonzo - Customer Service
Team Kermit – Car Rental Service
Investigate Implement Test
Investigate Implement Test
Contract First
Team Gonzo - Customer Service
Team Kermit – Car Rental Service
Define API
Contract
Investigate Implement
Investigate Implement Test
Test
Agree on API
Contract
• Development teams does not block each other
• Good and consistent communication between teams
• Consistent API models
• Separation of concerns
• Reusability
• Easy documentation
Contract First
REST Contracts - OpenAPI
API description format for REST APIs. An OpenAPI file allows you to
describe your entire API, including:
• Available endpoints (/users) and operations on each endpoint (GET
/users, POST /users)
• Operation parameters Input and output for each operation
• Authentication methods
• Contact information, license, terms of use and other information.
Demo Time
gRPC Contracts – Protocol Buffers
ProtoBuf
Definitions
protoc
Compiler
.NET
Go
Kotlin
gRPC Server
gRPC Client
2. Compile
1. Define 3. Implement
Keeping ProtoBuf in Line
Pick Style Guide
• Google’s Style Guide
• Uber’s Style Guide (V1/V2)
Lint your ProtoBuf files & Check for Breaking Changes
• Prototool
• Buf
Setup Mock Servers
• GripMock
Messaging Contracts – Kafka Schema Registry
Compatibility Types
Compatibility Type Changes Allowed Upgrade First
BACKWARD - Delete Fields
- Add optional fields
Consumers
FORWARD - Add fields
- Delete optional fields
Producers
FULL - Add optional fields
- Delete optional fields
Any order
NONE - Any changes Usually - custom migration logic
Useful Tools
• Stoplight Studio - https://stoplight.io/studio/
• Spectral - https://stoplight.io/open-source/spectral/
• OpenAPI-diff -https://github.com/OpenAPITools/openapi-diff
OpenAPI Tooling
• SwaggerHub - https://swagger.io/tools/swaggerhub/
• SwaggerHub CLI - https://github.com/SmartBear/swaggerhub-cli
SwaggerHub
• Prototool - https://github.com/uber/prototool
• GripMock - https://github.com/tokopedia/gripmock
gRPC Tooling
Thank You!

More Related Content

What's hot (20)

PDF
apidays LIVE Singapore - Next-generation microservice architecture based on A...
apidays
 
PPTX
The Effect of Microservices on API Design
LunchBadger
 
PDF
apidays LIVE London 2021 - API design is where culture and tech meet each oth...
apidays
 
PDF
Api clarity webinar
LibbySchulze
 
PDF
apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional En...
apidays
 
PDF
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays
 
PDF
apidays LIVE Australia 2021 - From apps to APIs: how no-code is transforming ...
apidays
 
PDF
apidays LIVE Paris 2021 - Why Can’t Us Consumers Have APIs by Salman Farmanfa...
apidays
 
PDF
apidays LIVE JAKARTA - Productising APIs: A journey in how we built API produ...
apidays
 
PDF
apidays LIVE Paris 2021 - API design is where culture and tech meet each othe...
apidays
 
PDF
apidays LIVE Hong Kong - Open Banking, Yin and Yang in Hong Kong by Simon Red...
apidays
 
PDF
apidays LIVE London 2021 - Federating the Content Layer by Jamie Barton, Grap...
apidays
 
PPTX
Tools and techniques for APIs
Jason Harmon
 
PDF
apidays LIVE Australia 2021 - Confessions of a Product Geek : My First API BY...
apidays
 
PDF
apidays LIVE Australia 2021 - Designing APIs: Just Enough is Perfect! by Dami...
apidays
 
PDF
apidays LIVE Paris 2021 - Building an analytics API by David Wobrock, Botify
apidays
 
PDF
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays
 
PPTX
Blood, sweat, and creating an API handbook
Pronovix
 
PDF
apidays LIVE Australia 2021 - Designing Embedded Platforms by Jeremy Glassenb...
apidays
 
PDF
apidays LIVE London 2021 - Advanced Authentication patterns at the Edge by De...
apidays
 
apidays LIVE Singapore - Next-generation microservice architecture based on A...
apidays
 
The Effect of Microservices on API Design
LunchBadger
 
apidays LIVE London 2021 - API design is where culture and tech meet each oth...
apidays
 
Api clarity webinar
LibbySchulze
 
apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional En...
apidays
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays
 
apidays LIVE Australia 2021 - From apps to APIs: how no-code is transforming ...
apidays
 
apidays LIVE Paris 2021 - Why Can’t Us Consumers Have APIs by Salman Farmanfa...
apidays
 
apidays LIVE JAKARTA - Productising APIs: A journey in how we built API produ...
apidays
 
apidays LIVE Paris 2021 - API design is where culture and tech meet each othe...
apidays
 
apidays LIVE Hong Kong - Open Banking, Yin and Yang in Hong Kong by Simon Red...
apidays
 
apidays LIVE London 2021 - Federating the Content Layer by Jamie Barton, Grap...
apidays
 
Tools and techniques for APIs
Jason Harmon
 
apidays LIVE Australia 2021 - Confessions of a Product Geek : My First API BY...
apidays
 
apidays LIVE Australia 2021 - Designing APIs: Just Enough is Perfect! by Dami...
apidays
 
apidays LIVE Paris 2021 - Building an analytics API by David Wobrock, Botify
apidays
 
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays
 
Blood, sweat, and creating an API handbook
Pronovix
 
apidays LIVE Australia 2021 - Designing Embedded Platforms by Jeremy Glassenb...
apidays
 
apidays LIVE London 2021 - Advanced Authentication patterns at the Edge by De...
apidays
 

Similar to Design and Evolution of APIs in Microservice Architecture (20)

PDF
apidays Australia 2022 - Schemas are not contracts!, Matt Fellows, Pactflow
apidays
 
PDF
Why You Should Be Doing Contract-First API Development
DevenPhillips
 
PDF
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
PDF
REST API Recommendations
Jeelani Shaik
 
PDF
SGCE 2015 REST APIs
Domingo Suarez Torres
 
PDF
APIs distribuidos con alta escalabilidad
Software Guru
 
PPTX
The Right Kind of API – How To Choose Appropriate API Protocols and Data Form...
Nordic APIs
 
PDF
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
Jitendra Bafna
 
PDF
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias
 
PPTX
RESTful API - Best Practices
Tricode (part of Dept)
 
PPTX
SVQdotNET: Building APIs with OpenApi
Juan Luis Guerrero Minero
 
PDF
Best practices and advantages of REST APIs
Aparna Sharma
 
PDF
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
PPTX
Building a REST API for Longevity
MuleSoft
 
PDF
Modern REST API design principles and rules.pdf
Aparna Sharma
 
PDF
Consumer centric api design v0.4.0
mustafa sarac
 
PPTX
Public API
Amir Zuker
 
PPTX
Will the Real Public API Please Stand Up? Amir Zuker
CodeValue
 
PPTX
API Docs with OpenAPI 3.0
Fabrizio Ferri-Benedetti
 
PPTX
Contract driven development
Stephen Erdman
 
apidays Australia 2022 - Schemas are not contracts!, Matt Fellows, Pactflow
apidays
 
Why You Should Be Doing Contract-First API Development
DevenPhillips
 
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
REST API Recommendations
Jeelani Shaik
 
SGCE 2015 REST APIs
Domingo Suarez Torres
 
APIs distribuidos con alta escalabilidad
Software Guru
 
The Right Kind of API – How To Choose Appropriate API Protocols and Data Form...
Nordic APIs
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
Jitendra Bafna
 
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias
 
RESTful API - Best Practices
Tricode (part of Dept)
 
SVQdotNET: Building APIs with OpenApi
Juan Luis Guerrero Minero
 
Best practices and advantages of REST APIs
Aparna Sharma
 
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
Building a REST API for Longevity
MuleSoft
 
Modern REST API design principles and rules.pdf
Aparna Sharma
 
Consumer centric api design v0.4.0
mustafa sarac
 
Public API
Amir Zuker
 
Will the Real Public API Please Stand Up? Amir Zuker
CodeValue
 
API Docs with OpenAPI 3.0
Fabrizio Ferri-Benedetti
 
Contract driven development
Stephen Erdman
 
Ad

More from Lohika_Odessa_TechTalks (20)

PPTX
OAuth2 Authorization Server Under the Hood
Lohika_Odessa_TechTalks
 
PPTX
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Lohika_Odessa_TechTalks
 
PPTX
Micro-frontends – is it a new normal?
Lohika_Odessa_TechTalks
 
PPTX
Multithreading in go
Lohika_Odessa_TechTalks
 
PPTX
Druid - Interactive Analytics At Scale
Lohika_Odessa_TechTalks
 
PDF
DevOps Odessa #TechTalks 21.01.2020
Lohika_Odessa_TechTalks
 
PPTX
Jenkins' shared libraries in action
Lohika_Odessa_TechTalks
 
PPTX
Prometheus: infrastructure and application monitoring in kubernetes cluster
Lohika_Odessa_TechTalks
 
PPT
Architectural peripherals of react by Vadym Zhiltsov
Lohika_Odessa_TechTalks
 
PPTX
React native by example by Vadim Ruban
Lohika_Odessa_TechTalks
 
PPTX
Aws lambda by Leonid Amigud
Lohika_Odessa_TechTalks
 
PPT
Congratulations, you have been promoted to a manager role. You`ve got new pro...
Lohika_Odessa_TechTalks
 
PPT
"Don't touch me and give me my money" or how motivate people who can but don...
Lohika_Odessa_TechTalks
 
PPTX
Docker based Architecture by Denys Serdiuk
Lohika_Odessa_TechTalks
 
PPTX
SparkSpark in the Big Data dark by Sergey Levandovskiy
Lohika_Odessa_TechTalks
 
PPT
Burnout and how to avoid it in your team. Responsible person's issue by Andre...
Lohika_Odessa_TechTalks
 
PPTX
Performance evaluation process as a way to empower your employees and help th...
Lohika_Odessa_TechTalks
 
PPT
Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
Lohika_Odessa_TechTalks
 
PPT
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
Lohika_Odessa_TechTalks
 
PPT
"WEB applications security testing" by Kirill Semenov for Lohika Odessa QA Te...
Lohika_Odessa_TechTalks
 
OAuth2 Authorization Server Under the Hood
Lohika_Odessa_TechTalks
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Lohika_Odessa_TechTalks
 
Micro-frontends – is it a new normal?
Lohika_Odessa_TechTalks
 
Multithreading in go
Lohika_Odessa_TechTalks
 
Druid - Interactive Analytics At Scale
Lohika_Odessa_TechTalks
 
DevOps Odessa #TechTalks 21.01.2020
Lohika_Odessa_TechTalks
 
Jenkins' shared libraries in action
Lohika_Odessa_TechTalks
 
Prometheus: infrastructure and application monitoring in kubernetes cluster
Lohika_Odessa_TechTalks
 
Architectural peripherals of react by Vadym Zhiltsov
Lohika_Odessa_TechTalks
 
React native by example by Vadim Ruban
Lohika_Odessa_TechTalks
 
Aws lambda by Leonid Amigud
Lohika_Odessa_TechTalks
 
Congratulations, you have been promoted to a manager role. You`ve got new pro...
Lohika_Odessa_TechTalks
 
"Don't touch me and give me my money" or how motivate people who can but don...
Lohika_Odessa_TechTalks
 
Docker based Architecture by Denys Serdiuk
Lohika_Odessa_TechTalks
 
SparkSpark in the Big Data dark by Sergey Levandovskiy
Lohika_Odessa_TechTalks
 
Burnout and how to avoid it in your team. Responsible person's issue by Andre...
Lohika_Odessa_TechTalks
 
Performance evaluation process as a way to empower your employees and help th...
Lohika_Odessa_TechTalks
 
Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
Lohika_Odessa_TechTalks
 
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
Lohika_Odessa_TechTalks
 
"WEB applications security testing" by Kirill Semenov for Lohika Odessa QA Te...
Lohika_Odessa_TechTalks
 
Ad

Recently uploaded (20)

PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
July Patch Tuesday
Ivanti
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 

Design and Evolution of APIs in Microservice Architecture

  • 1. Keep Your Contracts in Check: Design and Evolution of APIs in Microservice Architecture
  • 2. About Me • .NET Developer at Lohika • 5+ years of commercial experience • 3+ years at Lohika • Participated in development of 4 microservice-based systems, from 3 to 20+ services each.
  • 3. • Ways of interservice communication and how not to get lost with your options. • API First development and how it can save time in multi-team environment. • SwaggerHub as a single Point of truth for REST API • Best practices for gRPC contracts and how to deal with changes in them. • Kafka Schema Registry - contract coordinator for different messaging scenarios Agenda
  • 4. Tourist Agency Application Happy Monolith Past SQL TripPlanningService CustomerService HotelBookingService CarRentalService
  • 5. Bright Microservice Future SQL TripPlanningService CustomerService HotelBookingService CarRentalService SQL Mongo DB ????
  • 6. Synchronicity • Synchronous protocol • Asynchronous protocol Number of receivers • Single receiver • Multiple receivers Communication types
  • 7. Synchronous protocol ≠ Synchronous Communication Client Trip Planning Service Car Booking Service Customer Service HTTP Sync Request HTTP Sync Response HTTP Sync Request HTTP Sync Response HTTP Sync Request HTTP Sync Response Client Trip Planning Service Car Booking Service Customer Service HTTP Sync Request HTTP Polling HTTP Polling HTTP Sync Response HTTP Polling HTTP Sync Request HTTP Sync Response
  • 8. Number of Receivers Single Receiver - Command • At Least Once delivery • Exactly Once processing • Order of execution is important • Producer expects to receive response Multiple Receivers - Event • Fire and Forget • Louse Coupling between producers and consumers Trip Planning Service Car Booking Service Book a car for specific dates Customer Service Car Booking Service Trip Planning Service Hotel Booking Service Customer Info Changed
  • 9. Who Owns the Contract? Single Receiver - Command • The inbound queue identifier • The format of the processed command types Multiple Receivers - Event • The topic identifier • The format of all emitted events
  • 10. Command Model Consumer Producer Business Logic Implements business Logic Triggers business logic Quantity Always one Often many Autonomy Can run on its own Fails if no consumer Consumer owns the contract
  • 11. Event Model Consumer Producer Business Logic Implements business Logic Reports an event Quantity Usually many Only one Autonomy Subordinate to producer Can run on its own Producer owns the contract
  • 13. Code First Team Gonzo - Customer Service Team Kermit – Car Rental Service Investigate Implement Test Investigate Implement Test
  • 14. Contract First Team Gonzo - Customer Service Team Kermit – Car Rental Service Define API Contract Investigate Implement Investigate Implement Test Test Agree on API Contract
  • 15. • Development teams does not block each other • Good and consistent communication between teams • Consistent API models • Separation of concerns • Reusability • Easy documentation Contract First
  • 16. REST Contracts - OpenAPI API description format for REST APIs. An OpenAPI file allows you to describe your entire API, including: • Available endpoints (/users) and operations on each endpoint (GET /users, POST /users) • Operation parameters Input and output for each operation • Authentication methods • Contact information, license, terms of use and other information.
  • 18. gRPC Contracts – Protocol Buffers ProtoBuf Definitions protoc Compiler .NET Go Kotlin gRPC Server gRPC Client 2. Compile 1. Define 3. Implement
  • 19. Keeping ProtoBuf in Line Pick Style Guide • Google’s Style Guide • Uber’s Style Guide (V1/V2) Lint your ProtoBuf files & Check for Breaking Changes • Prototool • Buf Setup Mock Servers • GripMock
  • 20. Messaging Contracts – Kafka Schema Registry
  • 21. Compatibility Types Compatibility Type Changes Allowed Upgrade First BACKWARD - Delete Fields - Add optional fields Consumers FORWARD - Add fields - Delete optional fields Producers FULL - Add optional fields - Delete optional fields Any order NONE - Any changes Usually - custom migration logic
  • 22. Useful Tools • Stoplight Studio - https://stoplight.io/studio/ • Spectral - https://stoplight.io/open-source/spectral/ • OpenAPI-diff -https://github.com/OpenAPITools/openapi-diff OpenAPI Tooling • SwaggerHub - https://swagger.io/tools/swaggerhub/ • SwaggerHub CLI - https://github.com/SmartBear/swaggerhub-cli SwaggerHub • Prototool - https://github.com/uber/prototool • GripMock - https://github.com/tokopedia/gripmock gRPC Tooling