1

I have some micro-services, each consuming messages from messaging queue (Azure event hub) and producing a response back to the messaging queue. Initially, a start message is posted to the messaging queue, and the way these messages are consumed forms a sequence for the event.

Assume 4 services: s1, s2, s3, and s4

The start message is consumed by s1 and it produces a response and the response is consumed by s2 same scenario for s3 and s4.

So finally a start event goes like s1 to s2 to s3 to s4.

Ho to know the status (in terms of percentage) like s2 is done for a message then consider it 50% completed.

I know one solution is to use orchestration (camunda or apache airflow) but I do not want to add any central service, controlling calls to other microservices. I want to keep it totally event-based architecture.

I understand that without storing the knowledge of how the event is processed by different services, we can not figure out the current status (in terms of percentage or no of services done and no of services left for processing). In fact, the sequence of services should also be coded somewhere (maybe a monitoring service).

Is there any good microservices pattern to address this case? (assume that later a new service s5 can be added to the sequence)

hsingh
  • 661
  • 5
  • 26

0 Answers0