Are you preparing for an upcoming demo and some of the software components on the flow of execution aren’t ready yet?
You have two choices:
- Reschedule the demo
- Proceed ahead and demonstrate a semi functional feature or product
This is not an uncommon situation to be in and with the adoption of the microservices architecture, applications are increasingly being built as a collection of lightweight services or micro-applications. Microservices communicate with each other either via HTTP Request/Response Model or via Asynchronous Messaging Systems.
Let’s say that there is an Application that is made up of 10 microservices. Let’s assume that
- Microservices 1– 4 are mostly developed
- Development of Microservice 5 and 6 hasn’t started yet
- Microservices 7–10 are being actively developed by the Teams
- Microservices 7–10 are dependent upon some subset of data that is processed and delivered by Microservices 5 and 6
- The microservices communicate with each other via HTTP / REST APIs
If new features are being built into microservices 7–10, how would the developers working on those microservices demonstrate their new features to their teams, leadership, users and customers?
Dependencies, such as the one described above, between development teams can be solved by API Virtualization techniques, to some extent. Here is how API Virtualization could help:
- Teams responsible for building microservice 5 and 6 can create Virtual APIs and make them accessible to Teams working on microservices 7–10
- Alternatively, Teams 7–10 can create Virtual APIs themselves based on the agreed upon specs
- When microservices 7–10 need any data from from microservices 5 and 6, they can call Virtual APIs instead. Virtual APIs cannot provide unlimited amounts of data but they can be quickly configured to return sample data that covers most common development and product demonstration scenarios
API Virtualization can also help in scenarios where one or more APIs in the path of execution are unstable or unavailable and the teams responsible for maintaining them are unreachable. Virtual APIs could be created in minutes to fill-in for the unavailable/unstable APIs in the path of execution.
API Virtualization can not only help during development and testing, but it could also serve as a valuable tool for smoother product demonstrations.