Recommended specs for production

Hi,

Is there any docs with information with general (minimum) recommended specs for production usage?

I don’t know yet how much load and data we’re going to put in the EventStore yet, so if someone could give some examples of their usage and their machine specs I’d appreciate.

Thanks,

Manuel

Hi,

Is anyone able to help on this?

Without knowing load or data requirements its kind of open ended.

I know, that’s why I asked for some example usages and the respective specs.

But let’s use the following made-up scenario:

  • Say we insert 10000 events a day. Each event payload would have on average 200 bytes. We’d have around 30 different event types.
  • We have the $by_event_type projection enabled.
  • We persist new events into streams per aggregate id, which I’d say that in a year, we’d have around 1 million streams in the eventstore, with an average of 10 events each.
  • We have 10 applications processing events with persistent subscriptions in competing consumer fashion, 2 nodes per application = 20 connections. Each application’s persistent subscription has its own “projected stream”.
  • Each application has a configured projection that links their subscribed event types (using their $et-{eventType} streams) into their final “projected stream”.
  • We’re not planning to build read models with projections inside the eventstore, but could try that at a later stage.
    Thanks,

Manuel

Say we insert 10000 events a day. Each event payload would have on
average 200 bytes. We'd have around 30 different event types.

At this load you could run on just about anything. Do you have latency
requirements?

10m events/year is really not that much. Taking a laptop and putting
it under load you can probably do this in < 10 minutes.

I know this isn’t much load. I’m looking for some specs that can give us good stability over the next years, even with low write load. Eg: I don’t want to run into a situation where we hit OutOfMemory because we’re using only 8GB ram and (hipothetically the ES uses much more memory when we have multiple persistent subscriptions and connected clients). Should we use 16? 32?

If the EventStore core worker is single threaded, do we benefit in having the nodes running on machines with 4 cores? For storage, what would be a recommended size, considering data and logs?

As for latency, everything is in the same network, so no big deal.

Would be nice if someone could share their specs / usage and how well the ES is performing for them.

I would think an m.large/xlarge would easily be enough for your stated
load and likely 10x your load.

Persistent subscriptions have overhead but its quite small (depending
on read buffer sizes) at this kind of load it should be minimal

Alright, thanks.