IP Library › Granted Patent US 10,891,176
Granted Patent B1
US 10,891,176 · App. 16/536,443 · Granted Jan 12, 2021

Optimizing messaging flows in a microservice architecture

Inventor: David Miedema (Ottawa, CA)
Assignee: Ciena Corporation
G06F9/546
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,891,176
App. No.
16/536,443
Granted
Jan 12, 2021
Kind
B1
Abstract

In a distributed system with a microservice architecture having a plurality of services and a messaging layer for communication therebetween, systems and methods include receiving messages from a first service to a second service in the messaging layer; queuing responses from the messages; and utilizing one or more bulk messaging techniques to send the responses back to the first service from the second service. The systems and methods can also include maintaining statistics related to the one or more bulk messaging techniques; and automatically determining which of the one or more bulk messaging techniques based on the statistics, to minimize latency of the messaging layer.

Claims (38)

1. A non-transitory computer-readable medium comprising instructions that, when executed, cause a processor to perform the steps of:

in a distributed system with a microservice architecture having a plurality of services and a messaging layer between an application layer and a transport layer for communication between the plurality of services, receiving messages from a first service to a second service in the messaging layer;

queuing responses from the messages; and

utilizing one or more bulk messaging techniques to send the responses back to the first service from the second service, wherein the messaging layer is configured to perform the queuing the responses and the utilizing the one or more bulk messaging techniques independent of the first service, the second service, and the transport protocol of the transport layer.

2. The non-transitory computer-readable medium of claim 1 , wherein the instructions that, when executed, further cause the processor to perform the steps of

maintaining statistics related to the one or more bulk messaging techniques; and

automatically determining which of the one or more bulk messaging techniques based on the statistics, to minimize latency of the messaging layer.

3. The non-transitory computer-readable medium of claim 1 , wherein the one or more bulk messaging techniques include any of time window-based bulking, counter-based bulking, size-based bulking, and transaction-based bulking.

4. The non-transitory computer-readable medium of claim 1 , wherein the one or more bulk messaging techniques include multiple bulk messaging techniques, selected to minimize latency of the messaging layer.

5. The non-transitory computer-readable medium of claim 1 , wherein the one or more bulk messaging techniques include time window-based bulking where the queuing is over a predetermined time window.

6. The non-transitory computer-readable medium of claim 1 , wherein the one or more bulk messaging techniques include counter-based bulking where the queuing is based on a counter.

7. The non-transitory computer-readable medium of claim 1 , wherein the one or more bulk messaging techniques include size-based bulking where the queuing is based on a size of each response.

8. The non-transitory computer-readable medium of claim 1 , wherein the one or more bulk messaging techniques include transaction-based bulking where the queuing is based on a transaction tag.

9. The non-transitory computer-readable medium of claim 1 , wherein the first service is configured to provide information in one or more of the messages related to the one or more bulk messaging techniques.

10. An apparatus comprising:

a processor and memory comprising instructions that, when executed, cause the processor to execute a messaging layer, between an application layer and a transport layer, for communication between a plurality of services in a distributed system with a microservice architecture, wherein the messaging layer is configured to

receive messages from a first service to a second service in the messaging layer,

queue responses from the messages, and

utilize one or more bulk messaging techniques to send the responses back to the first service from the second service,

wherein the messaging layer is configured to perform the queuing the responses and the utilizing the one or more bulk messaging techniques independent of the first service, the second service, and the transport protocol of the transport layer.

11. The apparatus of claim 10 , wherein the messaging layer is further configured to

maintain statistics related to the one or more bulk messaging techniques, and

automatically determine which of the one or more bulk messaging techniques based on the statistics, to minimize latency of the messaging layer.

12. The apparatus of claim 10 , wherein the one or more bulk messaging techniques include any of time window-based bulking, counter-based bulking, size-based bulking, and transaction-based bulking.

13. The apparatus of claim 10 , wherein the one or more bulk messaging techniques include multiple bulk messaging techniques, selected to minimize latency of the messaging layer.

14. The apparatus of claim 10 , wherein the one or more bulk messaging techniques include time window-based bulking where the queue is over a predetermined time window.

15. The apparatus of claim 10 , wherein the one or more bulk messaging techniques include counter-based bulking where the queue is based on a counter.

16. The apparatus of claim 10 , wherein the one or more bulk messaging techniques include size-based bulking where the queue is based on a size of each response.

17. The apparatus of claim 10 , wherein the one or more bulk messaging techniques include transaction-based bulking where the queue is based on a transaction tag.

18. The apparatus of claim 10 , wherein the first service is configured to provide information in one or more of the messages related to the one or more bulk messaging techniques.

19. A computer-implemented method comprising:

in a distributed system with a microservice architecture having a plurality of services and a messaging layer between an application layer and a transport layer for communication between the plurality of services, receiving messages from a first service to a second service in the messaging layer;

queuing responses from the messages; and

utilizing one or more bulk messaging techniques to send the responses back to the first service from the second service,

wherein the messaging layer is configured to perform the queuing the responses and the utilizing the one or more bulk messaging techniques independent of the first service, the second service, and transport protocol of the transport layer.

20. The computer-implemented method of claim 19 , further comprising

maintaining statistics related to the one or more bulk messaging techniques; and

automatically determining which of the one or more bulk messaging techniques based on the statistics, to minimize latency of the messaging layer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2019
From: MIEDEMA, DAVID
To: CIENA CORPORATION
Reel/Frame 050008/0733 →
Cited By (3)
US 12,231,412 US 12,244,458 US 12,498,994