Our class project is divided into five industries. For each industry, we need to choose a client and design a system made up of three separate groups, with each group building its own microservice-based system. The three systems then need to work together as one larger solution. I understand the general idea of microservices, but I'm unclear about the practical integration: how do the services communicate, how are requests passed between them, and how do we connect the separate systems into a complete business workflow?
3 Answers
Think of integration as giving each service a shared way to communicate. Usually, each service exposes an API—often a REST API—that other services can call. For example, an ordering service might call an inventory service to check whether a product is available. Another option is a message queue, where services publish and receive events without calling each other directly. The important part is agreeing on the API contracts: endpoints, request and response formats, error handling, and authentication.
It helps to think in terms of a complete business workflow rather than just connecting three applications. For example: the checkout service asks the warehouse service for a product, reserves it, adds it to an order, asks the payment service to process payment, then tells the warehouse service to prepare the shipment. Each service should define the operations it supports and the data it accepts. Your integration code coordinates those operations and handles failures, such as payment being declined or inventory no longer being available.
For a student project, a traditional REST-based web service is probably the easiest approach. Each Nest.js service can expose controllers and endpoints, while another service uses an HTTP client to call them. You could also use gRPC, but it may add complexity unless you specifically need its performance and strongly typed contracts. The core idea is the same either way: one service exposes an interface and another uses that interface rather than accessing its database directly.
We’re using Next.js and Nest.js, so REST APIs between the services should probably fit our project best.

So it’s roughly like linking steps in HTML, except the services use APIs to access one another and exchange data?