Is EventStore and Azure Service Fabric a good approach?

Dear Sirs,

We are about to start a new consultancy project that seems to be a perfect fit for Event Sourcing.

Our idea is to use Azure Service Fabric and EventStore on this new project. We have the possibility, in the future, to expand and go to a more microservice-based way of working.

I found this post with a good example:

Does anyone use this kind of approach on Azure? Are there other recommended ways to create a cluster on Azure? What are your experiences using EventStore on Azure?

Kind Regards,
Mário Meyrelles

Just an update here , so far we are in the process of hosting the Event Store as an Exe as a central router but are also using the embedded client as a stateless service for data local to some ES services. We are at present looking at some clustering issues and the best way to host ( eg other question on stateful service) but there is nothing major .

In the longer term looking at SF on Linux but i’m not a big fan of monos jit and GC so will wait for .NET core version or leave on Windows.


we get similar performance mono vs windows clr at this point

i should add that mono's jit also has a llvm backed now.

You maybe more IO limited for eventstore and buffer work is mainly memcmp / memcmp from libc anyway.

In terms of 64 bit pre core/ pre Ryujit jit the ,NET 64 bit one was poor as well. llvm is effectively useless for GP programming it disables when it sees an interface , inheritance or virt call - , then you have a mismatch of code which then prevents LLVM strength ( register op , deep inlining ). Also note no polymorphic inline caches a big thing worth about 14% in a lib call …but you wont see in a micro bench since they are never cross lib.

I will say looking again , there is a lot more attention to the Jit code the last few months with Xamrin ( maybe because it was purchased ) but when i did some work 3-4 years ago for a project that used a fork there were very few changes in 7 years.

LLvm is very good for micro benches , scientific and static code which does have a place.