3

I am working on a service fabric application and want to publish few events from this application and subscribe or process those publish events in another application.

I have tried EventGrid concept and observed that there is a delay while publishing and processing the events. So, now I am looking for other alternatives like EventHub or Queues, etc..

If anyone had already used EventGrid, EventHud or Queues, etc.. , Please do suggest which one will give more performance when we deal with more events.

Design Approach

We have migrated the tables from SQL service to Service Fabric. There is a view in SQL Service, and we are planning to implement that as a service in service fabric.

The implementation logic follows below.

  1. Table 1 implemented service and we publish an event for each CRUD operation to EventGrid/ EventHud.
  2. Table 2 implemented service and we publish an event for each CRUD operation to EventGrid/ EventHud.
  3. We have created a view service where it listens to the events when any event sent to EventGrid/ EventHud, it will perform required calculations and store in the ViewService( It is a background job)

We are looking for a messaging service which gives more performance.

2 Answers 2

5

Have you seen this comparison and this one?

Anyway, can you clarify your requirements in terms of throughput and performance? It depends on a lot of factors including, but not limited to, the message size and the amount of messages.

Having used both Event Grid and Event Hub I'd say Event Hub works very well for many messages per second, say data streams from iot devices, but the performance of the downstream processing can be a bottleneck. You have to process them very fast in order to receive new events. Then there are partitions and consumer groups that can be of help to balance the load and have different processors for the same data but with different view of the data stream. (A fast processor for live displaying of sensor data and a slower one for storing the data for later analysis)

If you're talking about a few events generated by an application that triggers other apps to start doing some work based on those events Event Grid is a good fit. I haven't experienced much delay in receiving those events.

But bottom line, I think all services (Event Grid, Event Hub, Service Bus etc) support different use cases and that should be your first decision point.

1

Can you describe your publisher, subscriber, etc. and show your metrics of the Azure Event Grid usage?

You can use the portal screen snippets on the topic (publisher) and subscription (subscriber).

The following screen snippets are from my tester when manually have been fired few events.

Publisher side: enter image description here

Subscriber side: enter image description here

Metrics on the portal:

enter image description here

As you can see, the delivery destination processing time is ~1ms. The latency time on the publisher side (custom topic) is between 2-4ms.

Note, that the AEG is a PUSH->PUSH-ACK or PUSH->PULL-ACK eventing loosely decupled Pub/Sub model instead of the Event Hub model which is based on the PUSH->PULL mechanism, in other words, the Event Hub needs to host a listener and receiver for pulling an event from the partition.

1
  • Updated the question with Design Approach. Please have a look at it. Jul 15, 2019 at 12:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.