Weekly ESCR Talk

Hi all,

thanks for joining the first session and sorry for the somewhat chaotic execution. I hope that the next sessions will be a bit more structured and interesting for everyone!

Recap

Setup

We followed the simple installation steps described at https://github.com/neos/neos-development-distribution/tree/event-sourced#quick-start but unfortunately the current setup is broken due to patches that don’t apply to latest Neos versions.

=> I created a bug report and will work on a fix
=> IMO it is important that we keep the initial setup as easy and stable as possible. I wonder why the CI doesn’t fail currently. If it is not affected, we should maybe tweak it so that we catch setup regressions before a PR is merged already

Anatomy of the event stream

We took the chance to look at the event stream of the imported Neos.Demo site and stumbled upon two oddities:

  1. There were 5 NodeAggregateWasDisabled events – fortunately this is not a bug of the ESCR but a curiousity of the Neos.Demo site export (=> https://github.com/neos/Neos.Demo/issues/118)
  2. There were 19 NodePropertiesWereSet events – also not a bug per se, but a possibility for improvements => https://github.com/neos/contentrepository-development-collection/issues/200

Tooling/Debugging

We got a little lost in discussions about “versioning”, "snapshots, “nested live event streams” and “Postgres support”.
I’ll try to summarize what I can remember (feel free to correct/amend):

  • Versioning seems to be a feature that many customers would love to see
  • With our current implementation especially the “live content stream” will grow substantialy over time. This will make it harder and more expensive to work with the ESCR (e.g. replays & new projections take longer, data consumption, …)
    • Snapshots in the original sense probably won’t help us (and is rather impractical for the graph projection)
    • Would it help to introduce some kind of “closing the books” process?
    • (How) can we implement a “compact event stream” mechanism that reduces the events to the minimum that is needed for the current state? (=> maybe even with an option to compact older events more than newer ones, => we’ll probably need that for a proper export format as well)
  • Postgres support is in the works
    • Postgres has some major advantages over MySQL/MariaDB, e.g. “hyper edges” (reduce the amount of edges/copy operations drastically, especially for large projects with many dimensions), better JSON support and fulltext search
    • Personally, I would suggest that we try to keep support for MySQL as much as possible, i.e. by avoiding too many features to be added into the Graph projection and rather provide clean PHP APIs so that the implementations can be replaced

Outlook

  • The time slot (9.30-11.30am) seems to be suboptimal since it collides with dailies and reduces the preparation time. I would suggest to move the slot to 11am-1pm instead. What do you think?
  • To be honest: I am not sure if it makes sense to keep this weekly, but I’m happy to give it another try. Feel free to suggest topics for the next agenda

The next “ESCR Talk” will take place on Friday, November 26th at 11.00am CET.

Agenda

  • 11.00 -

(feel free to suggest topics)

2 Likes