Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Neos Conference 2021: Event Sourced Content Rep...
Search
Sebastian Kurfürst
September 22, 2021
Technology
66
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Neos Conference 2021: Event Sourced Content Repository - the current status
Sebastian Kurfürst
September 22, 2021
More Decks by Sebastian Kurfürst
See All by Sebastian Kurfürst
How To Write Unmaintainable Code - PHPDD 2024
skurfuerst
0
130
How To Write Unmaintainable Code
skurfuerst
0
110
PHPDD23: Practical Debugging and Performance Profiling
skurfuerst
0
100
Neos Con 2023: Migrating a Project to Neos 9
skurfuerst
0
55
Neos Con 2022: The New Content Repository
skurfuerst
0
67
2020: Sandstorm Technology Radar
skurfuerst
0
53
Neos Conference 2020: Event Sourced Content Repository - the current status
skurfuerst
0
41
Plone-Tagung Dresden 2020 - Patterns und Best Practices für die Entwicklung erweiterbarer und leistungsstarker React SPAs am Beispiel der Neos CMS-Benutzeroberfläche
skurfuerst
1
250
Neos Conference 2019: Announcing the Event Sourced Content Repository Alpha 1
skurfuerst
0
91
Other Decks in Technology
See All in Technology
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
180
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.8k
キャリアの中で本を作る / Making a Book During Your Career
ak1210
0
140
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
180
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
120
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.1k
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
210
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
0
110
穢れた技術選定について
watany
4
450
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
2
990
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
220
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
The Spectacular Lies of Maps
axbom
PRO
1
850
The Mindset for Success: Future Career Progression
greggifford
PRO
0
410
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
460
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
300
Building the Perfect Custom Keyboard
takai
2
810
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.9k
Transcript
The Event Sourced Content Repository: The Current Status
Introduction
Content Repository Asset Storage Fusion Flow Framework Neos Neos UI
Event Store Content Graph Commands Read API Write API Doctrine
DBAL
It's a big change behind the scenes.
Content Repository Asset Storage Fusion Flow Framework Neos Neos UI
Why are we doing the rewrite?
Model modify read classical Database Architecture Database
update projections append events Event Sourced Architecture Events "modify" read*
Event Store e1 e1 Node properties were updated e2 Node was created e3 Node properties were updated e4 Workspace was created
"Model", e.g. with Doctrine ORM update projection read the "model"
Projections DB Tables
Projections can be rebuilt DB Tables Empty DB Tables apply
event 1 DB Tables apply event 2 apply event 3 apply event 4 apply event 1000
write side read side (projections) Event store (DB Table) Content
Graph Commands Events Routing …
We know what has happened.
basis for Proper History and Undo
Editing Noti fi cations
Synchronization
already fi ve years in the making
December 2016: First Workshop
September 2017: ES CR Workshop Kiel
March 2018: ES CR Workshop Dresden
May 2018: Neos Conference Hamburg
May 2019: Neos Conference Dresden
May 2020: Neos Conference Online
What did we do since last year?
We want to use it for real. Node Type Changes
Automatically adjustable node:repair -> Structure Adjustments Node Type Changes Manually adjustable Node migrations Bugs Unplanned! Integrity Violation Detection
None
None
my personal brain nut 4 hours of coding 1 hour
of thinking 1 hour of discussing new insights
my personal brain nut 1 hour of coding 2 hours
of thinking 4 hours of discussing new insights
Things happened Smaller Features Event Sourced Routing Performance / Postgres
Support (WIP) Node Accessors (WIP)
Smaller Features Value Object Support in Properties Customizable Property Serializers
Property Scopes Access Control Support (WIP)
Property Scopes Product DE Product EN SKU, Price Across all
(or some) dimensions
Things happened Smaller Features Event Sourced Routing Performance / Postgres
Support (WIP) Node Accessors (WIP)
Things happened Smaller Features Event Sourced Routing Performance / Postgres
Support (WIP) Node Accessors (WIP)
Excourse: The Content Graph 2022 Node (Title: Next Year) Homepage
Node (Title: NeosCon) CS: live CS: user-sebastian
Excourse: The Content Graph 2022 Node (Title: Next Year) Homepage
Node (Title: NeosCon) CS: live CS: user-sebastian 2022 Node (Title: Next Year’s Con)
Excourse: The Content Graph 2022 Node (Title: Next Year) Homepage
Node (Title: NeosCon) CS: live DSP: EN CS: user-sebastian DSP: EN DE
Excourse: The Content Graph 2022 Node (Title: Next Year) Homepage
Node (Title: NeosCon) CS: live DSP: EN CS: user-sebastian DSP: EN DE 2022 Node (Title: Next Year’s Con)
None
Things happened Smaller Features Event Sourced Routing Performance / Postgres
Support (WIP) Node Accessors
Node Traversal Part Data Access Part
Node Traversal Part Data Access Part Node Accessor
Subgraph Node Accessor Content Subgraph Neos UI Menu Rendering Fusion
Outside API Storage API
Virtual Node Accessor Content Subgraph Neos UI Menu Rendering Fusion
Subgraph Node Accessor Virtual Node implementation WIP!
None
Roadmap
None
Webinar / QA Session / Deep Dive 21.05.2021 09:30 -
12:00 #project-cr-rewrite
None
None