System projections with emit enabled - implications for disk space

Hi there,

I have a few noob questions regarding system projections and disk space implications of using these.

Background

  • We are doing some capacity planning for a new event sourced system.
  • We’ve estimated we’ll have an events growth rate of n GB/mth.
  • We have one system projection (by_category) enabled and it seems the default for this is that emit is enabled.
  • All our events are named so they are picked up by this system projection (ie every event has a category).

Question

If the system projection is emitting events, will this double our actual disk usage? (ie two copies on disk of every event)

Should we now be planning for 2n GB/mth disk space growth?

Followup questions (for better understanding)

  1. Is it possible to change the system projection to not emit but rather link events?
  2. Does it even make sense to make system projections link rather than emit?
  3. Why/when would we not want to always link events in projections rather than emit?
  4. If we enabled a second system projection (eg by_type) would we then see 3n GB/mth disk space growth?

I’m happy to read docs if this is all explained somewhere.

Many thanks,

Justin

“If the system projection is emitting events, will this double our actual disk usage? (ie two copies on disk of every event)”

The projection does not make copies it uses linkTo events (try reading the $ce stream with resolveLinkTo: false)

Ok thanks.

So in the image below where it says emitEnabled = true we can ignore that as being incorrect?

Or is that property referring to something totally different?

cheers