Hi dear Neosianer,
Our beloved event sourced Neos with its beautiful content graph needs some new inertia. Since start of April - and throughout the sprint - i have had new ideas and worked continuously on improving the Neos CR to make it more viable in medium to large projects.
It’s already May now and just days ago i stumbled into another rabbit hole and found ways to deal with our rare publishing race condition.
In this time i have spend more than 80 hours on these CR stabilisations. Excluding the sprint.
Now i have laid out all possible paths and am in the process in finalising the changes as well as coordinating the merges and wrapping up everything into something release-able.
For an overview i can tell that i have been actively working on the following topics:
Publishing race conditions 
Must be the weather. But since a few days i have been able to reliably reproduce the sort of error that haunts us: Lock wait timeout exceeded; try restarting transaction and Content stream "..." is closed
… over the last year i had not made much progress
- Bug: Database connection gives up (
try restarting transaction) and corrupts workspace withContentStreamWasClosed - TASK: Provide parallel tests attempting to replicate deadlock & TASK: Log events if parallel tests failed
But now i was able to gather more insights and I started on working on many solutions to prevent the case as well as on a new event-store commit implementation to ensure integrity at core level.
- CR Events are committed atomically right? …
- PoC: FEATURE: Atomic events and simplify locking
- BUGFIX: Recover from unexpected error during command simulation
- PoC: BUGFIX: Close base workspace during command simulation
- PoC: FEATURE: Non transactional publishing via temporary content-stream layer
- BUGFIX: Solve publishing’s lock wait timeout exceeded (Experiments)
Love for our event store 
Our event store was last released one year ago. Through my profiling and new-found demands for the event store i have prepared a few changes. Also the code is slightly modernised and CI is now up and running again.
Ill plan to tag a few releases in the core and adapter as per the plan Release plan May 2026 - Version::next() *g
- BUGFIX: Reduce memory footprint in
InMemoryEventStore::getStreamVersion - TASK: Minimum php 8.2 compatibility
- FEATURE: Prune / Reset event store via
WithResetInterface - FEATURE: Multi stream publish (
commitAll) - TASK: Fix test commit consistency
- TASK: Remove legacy premature database reconnection and harden reconnects
Publishing / workspace experiments 
Publishing is currently slow because it creates expensive workspaces. And many expensive workspaces slow down the system. That is status quo of Neos 9.0. Inspired by the discussion to cleanup old user workspaces i experimented and created a PoC of a few of our other ideas. These experiments are now closed but laid the foundation for something better and bigger …
- FEATURE: ContentGraph content stream id auto increment (new
ContentStreamDbId) - WIP POC FEATURE: Content stream fork buffer
- WIP: Feature: Fast forward content streams during rebase (Made non breaking)
Fast core publishing and workspaces 
As it seems right in time for Neos 9.2 there will be a new concept for the DBAL graph adapter. Content stream layers. With layers a workspace can be created with cost of almost nothing. This is required to speed up our login. Also during publishing or rebase the we heavily profit from fast copying.
If you’re interested in that i recommend to look at my beautiful graphs here.
- FEATURE: Content graph hierarchy layers / Copy hierarchies on write / Instant forks
- WIP: improve “live” layer performance with materialised views
Bugfixes 
In the process of mowing through the CR i found a handful of bugs which i have fixed
- BUGFIX: Ignore orphaned reference relations in integrity violation
- BUGFIX: Always ensure tethered descendant node ids don’t exist during command handling
- BUGFIX: Use actual occupied node rows in node aggregate (as subtree tags are hierarchy)
- BUGFIX:
DimensionSpacePointsRepository’s runtime cache creates invalid state after replay - BUGFIX: Deterministic ordering of NodeAggregates’ Nodes for emitting events
Other 
Aside from this i have done a little more but this is not part of the funding request.
For example i have cleaned up parts of our behaviour test suite TASK: Use commands instead of events in behaviour tests, TASK: (Slightly) improve workspace / publishing test coverage and TASK: Sane visibility constraints in behaviour tests
Also i try to help coordinating the PostgreSQL adapter Beta 1.0 requirements · Issue #2 · neos/contentgraph-postgresqladapter · GitHub
And i am thinking already over the next optimisations FEATURE: “Synchronised” workspaces | Fork content stream after first write
Funding 
I like to finish what i have started - 30 hours - and also apply for a partial funding of the time invested - 50 hours.
I would like to apply for funding of 8.000 € - covering 80 hours
- Yes
- No
The voting closes Friday the 22nd of May 2026 20:00 CET
