Microservice communication is how small, independent services talk to each other to work together as one system.
Click to reveal answer
beginner
Name two common ways microservices communicate.
Microservices communicate using synchronous methods like HTTP/REST and asynchronous methods like message queues.
Click to reveal answer
beginner
What is synchronous communication in microservices?
Synchronous communication means one service waits for a response from another before continuing, like a phone call.
Click to reveal answer
beginner
What is asynchronous communication in microservices?
Asynchronous communication means services send messages and continue working without waiting, like sending an email.
Click to reveal answer
intermediate
Why use asynchronous communication in microservices?
It helps services stay fast and reliable by not waiting for others, which improves system scalability and fault tolerance.
Click to reveal answer
Which communication type waits for a response before continuing?
ABroadcast
BAsynchronous
CSynchronous
DMulticast
✗ Incorrect
Synchronous communication waits for a response before the sender continues.
Which protocol is commonly used for synchronous microservice communication?
AMQTT
BSMTP
CFTP
DHTTP/REST
✗ Incorrect
HTTP/REST is widely used for synchronous communication between microservices.
What is a benefit of asynchronous communication?
AFaster response time
BRequires less code
CNo need for network
DAlways uses HTTP
✗ Incorrect
Asynchronous communication allows services to continue working without waiting, improving response time.
Which tool is often used for asynchronous messaging in microservices?
AMessage queue
BREST API
CSOAP
DWebSocket
✗ Incorrect
Message queues help services send and receive messages asynchronously.
What happens if a synchronous call fails in microservices?
ACaller waits indefinitely
BCaller can handle error or timeout
CMessage is queued automatically
DNo impact on caller
✗ Incorrect
In synchronous calls, the caller must handle errors or timeouts if the call fails.
Explain the difference between synchronous and asynchronous communication in microservices.
Think about waiting for responses versus sending messages and continuing.
You got /4 concepts.
Describe why asynchronous communication can improve microservice system scalability.
Imagine a busy restaurant kitchen where cooks don’t wait for each other.
You got /4 concepts.
Practice
(1/5)
1. Which of the following is a common way for microservices to communicate synchronously in an Express-based system?
easy
A. Sharing global variables in memory
B. Direct database access by all services
C. Using HTTP REST API calls between services
D. Using local file system for message passing
Solution
Step 1: Understand synchronous communication in microservices
Synchronous communication means one service waits for a response from another before continuing.
Step 2: Identify common synchronous methods in Express
HTTP REST API calls are widely used for synchronous communication between microservices in Express.
Final Answer:
Using HTTP REST API calls between services -> Option C
Quick Check:
Synchronous communication = HTTP REST API calls [OK]
Hint: Sync communication usually uses HTTP requests [OK]
Common Mistakes:
Thinking direct DB access is common for microservices
Assuming shared memory works across services
Using file system for communication
2. Which Express code snippet correctly sends a JSON response from one microservice to another?
easy
A. res.json({ data: 'value' })
B. res.write({ data: 'value' })
C. res.send("{ data: 'value' }")
D. res.render({ data: 'value' })
Solution
Step 1: Identify Express method for JSON response
Express provides res.json() to send JSON formatted responses easily.
Step 2: Compare other methods
res.send() can send JSON but res.json() is preferred for clarity; res.write() is low-level and res.render() is for templates.
Final Answer:
res.json({ data: 'value' }) -> Option A
Quick Check:
Express JSON response = res.json() [OK]
Hint: Use res.json() to send JSON responses in Express [OK]
Common Mistakes:
Using res.send() without JSON stringification
Confusing res.render() with JSON response
Using res.write() incorrectly
3. Consider two microservices where Service A calls Service B using HTTP GET. What will Service A receive if Service B responds with res.status(200).json({ message: 'Success' })?
medium
A. A JSON object { message: 'Success' }
B. A plain text 'Success' string
C. An HTTP 404 error
D. An empty response
Solution
Step 1: Understand Service B's response
Service B sends HTTP status 200 with JSON body { message: 'Success' }.
Step 2: Determine what Service A receives
Service A receives the JSON object exactly as sent, since status 200 means OK and body is JSON.
Final Answer:
A JSON object { message: 'Success' } -> Option A
Quick Check:
HTTP 200 + res.json() = JSON object response [OK]
Hint: HTTP 200 with res.json() returns JSON object [OK]
Common Mistakes:
Assuming plain text instead of JSON
Confusing status codes with response body
Expecting empty or error response
4. In an Express microservice, the following code is used to call another service asynchronously. What is the main issue?
Node.js versions before 18 do not have fetch globally defined by default.
Step 2: Identify the main issue in Express microservice
Without importing or enabling fetch, this code will cause a ReferenceError in Node.js.
Final Answer:
fetch is not defined in Node.js by default -> Option B
Quick Check:
Node.js needs fetch polyfill or version 18+ [OK]
Hint: Node.js needs fetch polyfill or v18+ for fetch [OK]
Common Mistakes:
Thinking await is mandatory with then() chains
Ignoring fetch availability in Node.js
Confusing console.log with response sending
5. You want to design communication between two Express microservices where Service A sends a task to Service B and does not wait for a response. Which approach is best to ensure reliable, scalable communication?
hard
A. Use WebSocket connection for real-time two-way communication
B. Use HTTP POST with immediate response from Service B
C. Use direct database writes by Service A for Service B to poll
D. Use a message queue like RabbitMQ for asynchronous messaging
Solution
Step 1: Understand asynchronous communication needs
Service A sends a task and does not wait, so async messaging is needed.
Step 2: Evaluate options for reliability and scalability
Message queues like RabbitMQ provide reliable, scalable async communication with delivery guarantees.
Final Answer:
Use a message queue like RabbitMQ for asynchronous messaging -> Option D
Quick Check:
Async + reliable + scalable = message queue [OK]
Hint: Async tasks use message queues for reliability [OK]
Common Mistakes:
Using HTTP POST expecting async without waiting
Relying on database polling which is inefficient
Using WebSocket for one-way async tasks
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.