--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
The catchup subscriptions built in to the latest client API can do what you need.Use the method SubscribeToAllFrom(...) on EventStoreConnection. This takes a Position as a paramater, and will play back all historical events from that point onwards, taking care of the tricky crossover between historical events and new ones coming in over the subscription.You will get instances of ResolvedEvent passed to your EventAppeared callback, and you can get the next "start from" position off of that event from the OriginalPosition property.The key to getting at-most-once messaging like you are asking for is to store this value to your data store in the same transaction as whatever work you are doing.This way if something goes horribly wrong, you have written the position associated with whatever event you last successfully processed. Just load the last processed value you stored, and pass it in to SubscribeToAllFrom to carry on ... no missed or duplicate events :)James put up a reasonable example of an event dispatcher a little while ago:You would want to wrap the contents of HandleNewEvent into a single transaction.If you are just interested in events from a single stream, SubscribeToStreamFrom(...) works in a very similar way, but you will be working based on the Integer position of events within the stream, rather than global Position values.
On Monday, April 29, 2013 7:53:03 PM UTC+1, Gabriel Marquez wrote:
If I have multiple apps to share with the EventStore, I think maybe I should run multiple dispatcher for each app. Does it seem possible without concurrency problems?
Regards,
Ziwen
--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Keeping local checkpoint or holding the last uri with atom. If you store it transactionally with your interpretation of it you will also reach only once messaging. Eg I have a projection in sqlserver if I store my checkpoint in sqlserver as part of my operation I don't need to worry about idempotency.
There in the new client API is an object that even handles this for you (including switching servers etc in clustered mode). It's here https://github.com/EventStore/EventStore/blob/dev/src/EventStore/EventStore.ClientAPI/EventStoreCatchUpSubscription.cs
On Monday, July 8, 2013, Rinat Abdullin wrote:
How would you use ES as a durable message queue (keeping a local checkpoint or publishing "message consumed)?
On Mon, Jul 8, 2013 at 2:10 PM, Greg Young <gregor...@gmail.com> wrote:
Also you will find much much better up times with es as a backend than using rabbit clustering etc. it can handle both machine losses and network partitions. If you have five machines so long as any three can talk to each other (say 2x2x1 by data centers) you will be available. The clustering easily handles machine failures and network partitions (we run over a thousand per day eg actual power pulls)
Greg
On Monday, July 8, 2013, shenzw wrote:
Hi phil. Thank you for your quick response. Yes,that seems more reasonable, but how about the fail over strategy if the dispatcher was down? Any suggestions? Thanks.
Regards,
Ziwen
--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
Le doute n'est pas une condition agréable, mais la certitude est absurde.
--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Event Store" group.
To unsubscribe from this group and stop receiving emails from it, send an email to event-store+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.