Two questions related to competing consumers
How do we make sure we process events exactly once? If eventstore server crashes before checkpoint is written, there is a possibility duplicate events may be sent. Is it the responsibility of the subscriber(s) to handle this?
How to enforce ordering (precedence requirement)? Say we have a publisher which writes two events- Event A and Event B and we have two subscribers. How to make sure Event B is processed only after Event A is processed. Should this be handled by the subscribers or is there some other way the event store can help?
Also one related to projections
Say we create a projection A and then we create a new projection B, how do we make sure projection B only contains events that have not been acknowledged?