Is the Event Store more disk IOPS, CPU or RAM intensive?


I am new to Event Store, currently my team is planning to set up Event Store cluster for a project, and I have some questions related to the machines.

  • Is the Event Store more disk IOPS, CPU or RAM intensive? why?
  • Do I need physical servers or virtual servers?

normally iops.
physical servers are normally better though it works with virtualized servers.

just to clarify on #1 it also depends on the workload and whether you are running internal projections or not. Under most cases you will fall to an iops in terms of performance.

Thanks for your reply.

Could you please explain more about how does the internal projections have a impact on the Event Store performance?

will it be different if we use a service based projection? ( e.g. the projection based on windows service by EventStore.Client)


Best Regards,

Zhengquan Yang

Yes sure, internal projections cause internal cpu use (you can make
very heavy ones as you can imagine, say pricing an option where you
use .5 seconds of cpu per event). This will obviously cause
contention. Most are not this heavy but there is nothing stopping them
from being. A light projection under load will still see the cost of
deserializing json in v8 which will lower performance.

A better question might be what performance are you looking to get?
The kinds of things being discussed are only really important when you
are really putting the system under load.


I’m also in the same boat as the original poster. I don’t have a stable local set up, so have to use Azure. This will help my remote development also. The project may see a profitability in the year 2017 only.

As I understand I have to rent a VM to set up the EventStore if I have to host event store in Azure. I anticipate that the development for my project is for few years (release expected in 2017) with few hours every day or no hours at all. Recently I had to rent a VM in Azure that costed me $250 for a month. The Azure customer support was not good, so took a while to settle the issue. As I understand, the VM is charged for a month though any resources are not used.

What do you suggest me if I have to use EventStore in a development set up for few years in a cloud environment?

What kind of tps do you need? EventStore runs reasonably even on a tiny node.

The largest operation that is run is from a CSV file which has 1 million lines of data (and 15 columns of string data). It is okay for that large file to process in 1 to 5 seconds. When it goes to production, multiple users may run this long operation and that will go to billions.

When you said “tiny node”, are you suggesting anything other than VM like running the event store in a worker role and the persistence happen in a storage like Table storage?

“What do you suggest me if I have to use EventStore in a development set up for few years in a cloud environment?”

I’m not sure what to suggest to be honest - it runs fine in Amazon Web Services and Azure as virtual machines. If they cost too much you may find that local disks in real servers cost less operationally overall. I’m not aware of any free services that will
support potentially billions of events per minute - the costs of providing that would be substantial and unsustainable.