My team is creating a web service that we’re calling the Event Dispatcher and it:
- reads from the $all stream
- filters the events based on metadata and other information
- sends it off to subscribers listening to specific event types
- These event types are not specific to just one stream, but from multiple streams
- For example, $test_stream-123 and $test_stream-321 both contain TestEventTypeOne
the subscriber would receive TestEventTypeOne from both $test_stream-123 and $test_stream-321.
Without going into too much detail, we’ve been told that for our situation it would be better if we did not create any projections and read directly from the $all stream. We want this service to have some mechanisms to catch-up/recover events that subscribers need/missed. For example, a subscriber wants a single/a range of TestEventTypeOne from a month ago. To do this, we would have to read a months worth of events to get potentially one single event. Is there a way around? Ideally, we would want to read from a category stream to get just the events for that specific event type, but we did not enable any projections.