0
votes

In the user scenario, for a running auction there can be many user bids which need to be handled in the order they arrive. In my tests natural option is to go with ServiceBus Queues with support FIFO properly.

Few Issues with this as I see is;

  1. When there are lot of parallel auctions (Auction for itemA, B, C etc..), It's do not think it's feasible to create different queues per auction. But then pushing bids to a single queue will also have a bottle neck.

  2. Topics does not guarantee FIFO. But according to this using SupportOrdering can work (yet to test).

I was wondering whether eventhub can be used to model this scenario? At the end of the day there should be a layer that publishes bids ASAP and there are couple of workers taking action on those bids in order (and forward them to other sub systems)

Has anyone out there tried to tackle similar use case? Our current bid performance baseline is like (less than 200 bids per second for the moment)

1

1 Answers

1
votes

Event Hubs guarantees ordering of events when reading from a partition, though not reading events from different partitions. Assuming that you were sending events for a given auction to a single partition, your ordering needs would be satisfied.

The one additional thing that I'd like to mention is expectations of fairness in this kind of competitive scenario. An Event Hubs partition will preserve ordering with respect to the order in which they were received by the broker. That may not agree with the perceived order that users submit the bid due to network latency or transient failures that require retries.