we currently use NServiceBus with SQL for transport/persistence set up as pub/sub.
The databases of the receivers can be approached by one or multiple Web APIs. However when we’re syncing data for a specific customer we want to be able to block the API to read the data for that customer while we want to keep the rest open. As such we simply check on each call of a bit flag is set to 1 in a database for customer X.
We want to publish a signal that flips the big flag in the respective receivers for customer X to block API calls. Then send an amount of messages (could be 10, could be several million). After all messages have been handled by the respective receiver the bit flag for that customer should be flipped to 0.
The big question:
Which approach would be suitable for this? A saga? Something else? Abandon the usage of NSB in this case?
For the saga part: would it be possible to set up a saga that acts like one big transaction that covers the future scenario? If so, how?