SlideShare a Scribd company logo
TYPO3 Backstage Development Oliver Hader 05/2016
Backstage

Development
May 7th, 2016
TYPO3 Backstage Development Oliver Hader 05/2016
• living in Hof (Bavaria, Germany)
• is Freelance Software Engineer
• TYPO3 Core Developer since 2007
• studying at University of Applied Sciences Hof
• in the past release manage & core team leader
whois oliver.hader
TYPO3 Backstage Development Oliver Hader 05/2016
• Backend Apps ~integration & user experience
• Messaging & Job Queue ~system & development
• Event Sourcing ~system & development
Overview
TYPO3 Backstage Development Oliver Hader 05/2016
• for editors
• dealing with News, Events, Products
• focus on a single task at a time
• for developers & integrators
• boilerplate code in backend modules
• configuration over implementation
Backend Apps ~scope
TYPO3 Backstage Development Oliver Hader 05/2016
• research & development in 2015
• master thesis by Andreas Steiger
• analyzing user actions & tasks
• analyzing other products & solutions
• defining components & concepts
Backend Apps ~history
TYPO3 Backstage Development Oliver Hader 05/2016
• reusable
• tree components
• filter components
• toolbar components
• results & preview
• custom components
Backend Apps ~components
Source: Andreas Steiger, Master Thesis
TYPO3 Backstage Development Oliver Hader 05/2016
• DRY & NIH phenomenon
• configuration over implementation
• defined & extensible vocabulary
• YAML, JSON, XML, PHP, …
• compare it to TCA… somehow
Backend Apps ~configuration
TYPO3 Backstage Development Oliver Hader 05/2016
• components as in Web Components?
• which technology to choose?
• native HTML5 Web Components
• Angular2 ~2.0.0-RC1 in May 2016
• Polymer ~1.4.0 in March 2016
Backend Apps ~technology
TYPO3 Backstage Development Oliver Hader 05/2016
• Templates
• Imports
• Custom Elements
• Shadow DOM
Web Components ~overview
Source: http://webcomponents.org
TYPO3 Backstage Development Oliver Hader 05/2016
<head>…

	
  	
  <link	
  rel="import"	
  href="my-­‐component.html">…

</head>

<body>

	
  	
  <my-­‐component	
  text="Some	
  text..."	
  class="css-­‐class"></my-­‐…>

</body>
Web Components ~markup
<template>

	
  	
  <div>

	
  	
  	
  	
  <h1>{{text}}</h1>…<hr>…

	
  	
  </div>

</template>

<script>

	
  	
  var	
  MyComponent	
  =	
  document.registerElement('my-­‐component');

</script>
index.html
my-component.html
TYPO3 Backstage Development Oliver Hader 05/2016
• thesis
• http://t3app.steiger.webseiten.cc/
Masterarbeit_Andreas_Steiger.pdf
• prototype
• http://t3app.steiger.webseiten.cc/start_app.html
• further discussion
• https://wiki.typo3.org/Blueprints/ContentModule
Backend Apps ~resources
TYPO3 Backstage Development Oliver Hader 05/2016
• defer actions that take ”longer”
• split tasks into smaller chunks
• trigger immediate actions
• related to commands in general
• distribute, delegate, transport
Job Queue ~scope
TYPO3 Backstage Development Oliver Hader 05/2016
• Producer & Consumer
• different phases
• single & direct queue
• publish & subscribe pattern
• remote procedure call
• AMQP, MQTT, RabbitMQ, …
Job Queue ~technology
Source: https://www.rabbitmq.com/getstarted.html
TYPO3 Backstage Development Oliver Hader 05/2016
• one task is split into chunks
• one chunk has sub-chunks
• chunks can be nested
• future / promise pattern in PHP
• asynchronous processing
• non-blocking processing
Job Queue ~chunking
Task #3
Chunk A
Chunk B
Chunk B.1 Chunk B.2
Chunk C
TYPO3 Backstage Development Oliver Hader 05/2016
• newsletter delivery
• execute upgrade wizards
• cloning elements & pages
• generate many thumbnails
• perform data encryption
• apply event sourcing application state
Job Queue ~use cases
TYPO3 Backstage Development Oliver Hader 05/2016
• master thesis by Dustin Kinney
• analyzing protocols & solutions
• prototype focussed on jobs & tasks
• ad-hoc & CLI workers
• concept for sophisticated messaging
• daemons & distributed workers
Job Queue ~next:2016
TYPO3 Backstage Development Oliver Hader 05/2016
• replace protocol and history in TYPO3
• record reliable events
• apply and replay series of events
• application state for any time
• evaluate, measure & define
• overcome overlaying flaws
Event Sourcing ~scope
TYPO3 Backstage Development Oliver Hader 05/2016
Event Sourcing ~current
uid pid sorting sys_lang l18n_parent t3ver_wsid t3ver_state t3ver_oid header
296 88 256 0 0 0 0 0 Regular Element #0
297 89 256 0 0 0 0 0 Regular Element #1
298 89 512 0 0 0 0 0 Regular Element #2
299 89 768 0 0 0 0 0 Regular Element #3
300 89 1024 1 299 0 0 0
[Translate to Dansk:]
Regular Element #3
302 89 640 1 298 1 1 0
[Translate to Dansk:]
Regular Element #2
303 -1 640 1 298 1 -1 302
[Translate to Dansk:]
Regular Element #2
301 -1 512 0 0 2 2 298 Regular Element #2
• translation of available content in workspace
TYPO3 Backstage Development Oliver Hader 05/2016
Event Sourcing ~current
123
Workspace

version?
136
149
Localization

to fr_FR?
Move

Placeholder?
135
Workspace

version?
152
151
Move

Placeholder?
155
Localization

to fr_CA?
164Language

fallback?
Workspace

version…
one (1!)

record
Live

Record
TYPO3 Backstage Development Oliver Hader 05/2016
• design pattern by Martin Fowler
• currently final application state only
• no information on how to get there
• only persist events that happened
• apply events to create application state
• … any time, on any target system
Event Sourcing ~technology
TYPO3 Backstage Development Oliver Hader 05/2016
Event Sourcing ~technology
Source: http://martinfowler.com/eaaDev/EventSourcing.html
TYPO3 Backstage Development Oliver Hader 05/2016
• Command Query Response Segregation
• design pattern by Greg Young
• separate domain logic
• read data (response)
• write data (command)
• introduces more complexity
Event Sourcing ~CQRS
TYPO3 Backstage Development Oliver Hader 05/2016
Event Sourcing ~CQRS
Source: http://martinfowler.com/bliki/CQRS.html
TYPO3 Backstage Development Oliver Hader 05/2016
Event Sourcing ~CQRS
Source: http://martinfowler.com/bliki/CQRS.html
TYPO3 Backstage Development Oliver Hader 05/2016
Event Sourcing ~example
Revision Event Status
1 created “tt_content uid: 12
2 hidden “tt_content:123 uid: 123

hidden:
3 updated “tt_content:123”

{ “title”: “Some record” }
uid: 123

hidden: 1

title: “Some record
4 moved “tt_content:123”

{ “to”: “top” }
uid: 123

hidden: 1

sorting: 0

title: “Some record
TYPO3 Backstage Development Oliver Hader 05/2016
Revision Event Status
5 forked “tt_content:123”

{ “workspace”: 1 }
uid: 123

t3ver_wsid: 1

hidden: 1

sorting: 0

title: “Some record
6 updated “tt_content:123”

{ “workspace”: 1, “title”: “Changed” }
uid: 123

t3ver_wsid: 1

hidden: 1

sorting: 0

title: “Changed
7 unhidden “tt_content:123 uid: 123

hidden: 0

sorting: 0

title: “Some record
8 merged “tt_content:123”

{ “workspace”: 1 }
uid: 123

hidden: 0

sorting: 0

title: “Changed
TYPO3 Backstage Development Oliver Hader 05/2016
Event Sourcing ~projections
TYPO3 Backstage Development Oliver Hader 05/2016
• master thesis by Oliver Hader
• analyzing patterns & solutions
• define events and types for TYPO3 context
• introduce event sourcing & logging
• introduce application state behavior
• concept about ”TYPO3 Time Machine”
Event Sourcing ~next:2016
TYPO3 Backstage Development Oliver Hader 05/2016
Thank you!
ohader

@ohader

Oliver_Hader
follow me

More Related Content

What's hot

Security Automation using ZAP
Security Automation using ZAPSecurity Automation using ZAP
Security Automation using ZAP
Vaibhav Gupta
 
CMS Hacking Tricks - DerbyCon 4 - 2014
CMS Hacking Tricks - DerbyCon 4 - 2014CMS Hacking Tricks - DerbyCon 4 - 2014
CMS Hacking Tricks - DerbyCon 4 - 2014
Greg Foss
 
There’s an OpenBullet Attack Config for Your Site – What Should You Do?
There’s an OpenBullet Attack Config for Your Site – What Should You Do?There’s an OpenBullet Attack Config for Your Site – What Should You Do?
There’s an OpenBullet Attack Config for Your Site – What Should You Do?
DevOps.com
 
ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2...
ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2...ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2...
ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2...
Mauricio Velazco
 
Zap vs burp
Zap vs burpZap vs burp
Zap vs burp
Tomasz Fajks
 
Wi-Fi Hotspot Attacks
Wi-Fi Hotspot AttacksWi-Fi Hotspot Attacks
Wi-Fi Hotspot Attacks
Greg Foss
 
Jakob Holderbaum - Managing Shared secrets using basic Unix tools
Jakob Holderbaum - Managing Shared secrets using basic Unix toolsJakob Holderbaum - Managing Shared secrets using basic Unix tools
Jakob Holderbaum - Managing Shared secrets using basic Unix tools
DevSecCon
 
REST API Pentester's perspective
REST API Pentester's perspectiveREST API Pentester's perspective
REST API Pentester's perspective
SecuRing
 
Justin collins - Practical Static Analysis for continuous application delivery
Justin collins - Practical Static Analysis for continuous application deliveryJustin collins - Practical Static Analysis for continuous application delivery
Justin collins - Practical Static Analysis for continuous application delivery
DevSecCon
 
Badneedles
BadneedlesBadneedles
Badneedles
dimisec
 
SANS @Night Talk: SQL Injection Exploited
SANS @Night Talk: SQL Injection ExploitedSANS @Night Talk: SQL Injection Exploited
SANS @Night Talk: SQL Injection Exploited
Micah Hoffman
 

What's hot (11)

Security Automation using ZAP
Security Automation using ZAPSecurity Automation using ZAP
Security Automation using ZAP
 
CMS Hacking Tricks - DerbyCon 4 - 2014
CMS Hacking Tricks - DerbyCon 4 - 2014CMS Hacking Tricks - DerbyCon 4 - 2014
CMS Hacking Tricks - DerbyCon 4 - 2014
 
There’s an OpenBullet Attack Config for Your Site – What Should You Do?
There’s an OpenBullet Attack Config for Your Site – What Should You Do?There’s an OpenBullet Attack Config for Your Site – What Should You Do?
There’s an OpenBullet Attack Config for Your Site – What Should You Do?
 
ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2...
ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2...ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2...
ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2...
 
Zap vs burp
Zap vs burpZap vs burp
Zap vs burp
 
Wi-Fi Hotspot Attacks
Wi-Fi Hotspot AttacksWi-Fi Hotspot Attacks
Wi-Fi Hotspot Attacks
 
Jakob Holderbaum - Managing Shared secrets using basic Unix tools
Jakob Holderbaum - Managing Shared secrets using basic Unix toolsJakob Holderbaum - Managing Shared secrets using basic Unix tools
Jakob Holderbaum - Managing Shared secrets using basic Unix tools
 
REST API Pentester's perspective
REST API Pentester's perspectiveREST API Pentester's perspective
REST API Pentester's perspective
 
Justin collins - Practical Static Analysis for continuous application delivery
Justin collins - Practical Static Analysis for continuous application deliveryJustin collins - Practical Static Analysis for continuous application delivery
Justin collins - Practical Static Analysis for continuous application delivery
 
Badneedles
BadneedlesBadneedles
Badneedles
 
SANS @Night Talk: SQL Injection Exploited
SANS @Night Talk: SQL Injection ExploitedSANS @Night Talk: SQL Injection Exploited
SANS @Night Talk: SQL Injection Exploited
 

Viewers also liked

La vida de zack brown
La vida de zack brownLa vida de zack brown
La vida de zack brown
zb866608mhs
 
Jociele (1)
Jociele (1)Jociele (1)
Jociele (1)
SimoneHelenDrumond
 
CETÁCEOS
CETÁCEOSCETÁCEOS
Narsiza y aida
Narsiza y aidaNarsiza y aida
Narsiza y aida
Narcisa Ostaiza
 
Drucker chapter 4
Drucker chapter 4Drucker chapter 4
Drucker chapter 4
detjen
 
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-1601081218047df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
Akshat Gupta
 
How to prevent humanitarian debacle in the contemporary world
How to prevent humanitarian debacle in the contemporary worldHow to prevent humanitarian debacle in the contemporary world
How to prevent humanitarian debacle in the contemporary world
Fernando Alcoforado
 
Chapter 6
Chapter 6Chapter 6
Chapter 6
detjen
 
The world toward world war 4
The world toward world war 4The world toward world war 4
The world toward world war 4
Fernando Alcoforado
 
Duvidas de lei de transporte escolar
Duvidas de lei de transporte escolar Duvidas de lei de transporte escolar
Duvidas de lei de transporte escolar
Eric Holiness
 
Maria Fernanda Camacho Aguillon 3.2
Maria Fernanda Camacho Aguillon 3.2Maria Fernanda Camacho Aguillon 3.2
Maria Fernanda Camacho Aguillon 3.2
Marifer342
 
O lúdico na educação infantil
O lúdico na educação infantilO lúdico na educação infantil
O lúdico na educação infantil
SimoneHelenDrumond
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
detjen
 
Sopa de letras
Sopa de letrasSopa de letras
Sopa de letras
teresa2013
 
A biblioteca 2.0
A biblioteca 2.0A biblioteca 2.0
A biblioteca 2.0
Carlos Pinheiro
 
Газета дружба №3
Газета дружба №3Газета дружба №3
Газета дружба №3
RudnSite
 
дружба 16
дружба 16дружба 16
дружба 16
PR_RUDN
 
Escultura e pintura românicas
Escultura e pintura românicasEscultura e pintura românicas
Escultura e pintura românicas
cattonia
 
Tratamento De ResíDuos SóLidos
Tratamento De ResíDuos SóLidosTratamento De ResíDuos SóLidos
Tratamento De ResíDuos SóLidos
Nuno Correia
 
TCC - O LÚDICO NA EDUCAÇÃO INFANTIL
TCC -  O LÚDICO NA EDUCAÇÃO INFANTILTCC -  O LÚDICO NA EDUCAÇÃO INFANTIL
TCC - O LÚDICO NA EDUCAÇÃO INFANTIL
JJOAOPAULO7
 

Viewers also liked (20)

La vida de zack brown
La vida de zack brownLa vida de zack brown
La vida de zack brown
 
Jociele (1)
Jociele (1)Jociele (1)
Jociele (1)
 
CETÁCEOS
CETÁCEOSCETÁCEOS
CETÁCEOS
 
Narsiza y aida
Narsiza y aidaNarsiza y aida
Narsiza y aida
 
Drucker chapter 4
Drucker chapter 4Drucker chapter 4
Drucker chapter 4
 
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-1601081218047df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
 
How to prevent humanitarian debacle in the contemporary world
How to prevent humanitarian debacle in the contemporary worldHow to prevent humanitarian debacle in the contemporary world
How to prevent humanitarian debacle in the contemporary world
 
Chapter 6
Chapter 6Chapter 6
Chapter 6
 
The world toward world war 4
The world toward world war 4The world toward world war 4
The world toward world war 4
 
Duvidas de lei de transporte escolar
Duvidas de lei de transporte escolar Duvidas de lei de transporte escolar
Duvidas de lei de transporte escolar
 
Maria Fernanda Camacho Aguillon 3.2
Maria Fernanda Camacho Aguillon 3.2Maria Fernanda Camacho Aguillon 3.2
Maria Fernanda Camacho Aguillon 3.2
 
O lúdico na educação infantil
O lúdico na educação infantilO lúdico na educação infantil
O lúdico na educação infantil
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Sopa de letras
Sopa de letrasSopa de letras
Sopa de letras
 
A biblioteca 2.0
A biblioteca 2.0A biblioteca 2.0
A biblioteca 2.0
 
Газета дружба №3
Газета дружба №3Газета дружба №3
Газета дружба №3
 
дружба 16
дружба 16дружба 16
дружба 16
 
Escultura e pintura românicas
Escultura e pintura românicasEscultura e pintura românicas
Escultura e pintura românicas
 
Tratamento De ResíDuos SóLidos
Tratamento De ResíDuos SóLidosTratamento De ResíDuos SóLidos
Tratamento De ResíDuos SóLidos
 
TCC - O LÚDICO NA EDUCAÇÃO INFANTIL
TCC -  O LÚDICO NA EDUCAÇÃO INFANTILTCC -  O LÚDICO NA EDUCAÇÃO INFANTIL
TCC - O LÚDICO NA EDUCAÇÃO INFANTIL
 

Similar to TYPO3 Backstage Development

Automated Production Ready ML at Scale
Automated Production Ready ML at ScaleAutomated Production Ready ML at Scale
Automated Production Ready ML at Scale
Databricks
 
Silicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionSilicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in production
Daniel Coupal
 
Staying Close to Experts with Executable Specifications
Staying Close to Experts with Executable SpecificationsStaying Close to Experts with Executable Specifications
Staying Close to Experts with Executable Specifications
Vagif Abilov
 
Bdf16 big-data-warehouse-case-study-data kitchen
Bdf16 big-data-warehouse-case-study-data kitchenBdf16 big-data-warehouse-case-study-data kitchen
Bdf16 big-data-warehouse-case-study-data kitchen
Christopher Bergh
 
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
Craeg Strong
 
Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?
C4Media
 
Qcon beijing 2010
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
Vonbo
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
Mario Romano
 
Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)
Hong Tat Yew
 
ACM BPM and elasticsearch AMIS25
ACM BPM and elasticsearch AMIS25ACM BPM and elasticsearch AMIS25
Developer Night - Opticon18
Developer Night - Opticon18Developer Night - Opticon18
Developer Night - Opticon18
Optimizely
 
Building reliable apps with cdk
Building reliable apps with cdkBuilding reliable apps with cdk
Building reliable apps with cdk
RaphaelManke1
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
Amazon Web Services
 
Cypress.pptx
Cypress.pptxCypress.pptx
Cypress.pptx
Arshad QA
 
[OPD 2019] Governance as a missing part of IT security architecture
[OPD 2019] Governance as a missing part of IT security architecture[OPD 2019] Governance as a missing part of IT security architecture
[OPD 2019] Governance as a missing part of IT security architecture
OWASP
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
Jadson Santos
 
Modern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layerModern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layer
Shakacon
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
Adam Getchell
 
Benchmarking at Parse
Benchmarking at ParseBenchmarking at Parse
Benchmarking at Parse
Travis Redman
 
Advanced Benchmarking at Parse
Advanced Benchmarking at ParseAdvanced Benchmarking at Parse
Advanced Benchmarking at Parse
MongoDB
 

Similar to TYPO3 Backstage Development (20)

Automated Production Ready ML at Scale
Automated Production Ready ML at ScaleAutomated Production Ready ML at Scale
Automated Production Ready ML at Scale
 
Silicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionSilicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in production
 
Staying Close to Experts with Executable Specifications
Staying Close to Experts with Executable SpecificationsStaying Close to Experts with Executable Specifications
Staying Close to Experts with Executable Specifications
 
Bdf16 big-data-warehouse-case-study-data kitchen
Bdf16 big-data-warehouse-case-study-data kitchenBdf16 big-data-warehouse-case-study-data kitchen
Bdf16 big-data-warehouse-case-study-data kitchen
 
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
 
Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?
 
Qcon beijing 2010
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
 
Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)
 
ACM BPM and elasticsearch AMIS25
ACM BPM and elasticsearch AMIS25ACM BPM and elasticsearch AMIS25
ACM BPM and elasticsearch AMIS25
 
Developer Night - Opticon18
Developer Night - Opticon18Developer Night - Opticon18
Developer Night - Opticon18
 
Building reliable apps with cdk
Building reliable apps with cdkBuilding reliable apps with cdk
Building reliable apps with cdk
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
 
Cypress.pptx
Cypress.pptxCypress.pptx
Cypress.pptx
 
[OPD 2019] Governance as a missing part of IT security architecture
[OPD 2019] Governance as a missing part of IT security architecture[OPD 2019] Governance as a missing part of IT security architecture
[OPD 2019] Governance as a missing part of IT security architecture
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
Modern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layerModern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layer
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Benchmarking at Parse
Benchmarking at ParseBenchmarking at Parse
Benchmarking at Parse
 
Advanced Benchmarking at Parse
Advanced Benchmarking at ParseAdvanced Benchmarking at Parse
Advanced Benchmarking at Parse
 

More from Oliver Hader

T3DD23 Content Security Policy - Concept, Strategies & Pitfalls
T3DD23 Content Security Policy - Concept, Strategies & PitfallsT3DD23 Content Security Policy - Concept, Strategies & Pitfalls
T3DD23 Content Security Policy - Concept, Strategies & Pitfalls
Oliver Hader
 
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
Oliver Hader
 
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
Oliver Hader
 
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...
Oliver Hader
 
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSWebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
Oliver Hader
 
Web Components
Web ComponentsWeb Components
Web Components
Oliver Hader
 
Web application security
Web application securityWeb application security
Web application security
Oliver Hader
 
Contribute to TYPO3 CMS
Contribute to TYPO3 CMSContribute to TYPO3 CMS
Contribute to TYPO3 CMS
Oliver Hader
 
T3CON13DE - TYPO3 CMS Team
T3CON13DE - TYPO3 CMS TeamT3CON13DE - TYPO3 CMS Team
T3CON13DE - TYPO3 CMS Team
Oliver Hader
 
TYPO3camp Regensburg: TYPO3 6.0
TYPO3camp Regensburg: TYPO3 6.0TYPO3camp Regensburg: TYPO3 6.0
TYPO3camp Regensburg: TYPO3 6.0Oliver Hader
 
TYPO3 Inline Relational Record Editing (IRRE)
TYPO3 Inline Relational Record Editing (IRRE)TYPO3 Inline Relational Record Editing (IRRE)
TYPO3 Inline Relational Record Editing (IRRE)
Oliver Hader
 
TYPO3 4.6 & TYPO3 4.7
TYPO3 4.6 & TYPO3 4.7TYPO3 4.6 & TYPO3 4.7
TYPO3 4.6 & TYPO3 4.7
Oliver Hader
 

More from Oliver Hader (12)

T3DD23 Content Security Policy - Concept, Strategies & Pitfalls
T3DD23 Content Security Policy - Concept, Strategies & PitfallsT3DD23 Content Security Policy - Concept, Strategies & Pitfalls
T3DD23 Content Security Policy - Concept, Strategies & Pitfalls
 
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?"
 
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
 
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...
 
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSWebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
 
Web Components
Web ComponentsWeb Components
Web Components
 
Web application security
Web application securityWeb application security
Web application security
 
Contribute to TYPO3 CMS
Contribute to TYPO3 CMSContribute to TYPO3 CMS
Contribute to TYPO3 CMS
 
T3CON13DE - TYPO3 CMS Team
T3CON13DE - TYPO3 CMS TeamT3CON13DE - TYPO3 CMS Team
T3CON13DE - TYPO3 CMS Team
 
TYPO3camp Regensburg: TYPO3 6.0
TYPO3camp Regensburg: TYPO3 6.0TYPO3camp Regensburg: TYPO3 6.0
TYPO3camp Regensburg: TYPO3 6.0
 
TYPO3 Inline Relational Record Editing (IRRE)
TYPO3 Inline Relational Record Editing (IRRE)TYPO3 Inline Relational Record Editing (IRRE)
TYPO3 Inline Relational Record Editing (IRRE)
 
TYPO3 4.6 & TYPO3 4.7
TYPO3 4.6 & TYPO3 4.7TYPO3 4.6 & TYPO3 4.7
TYPO3 4.6 & TYPO3 4.7
 

Recently uploaded

Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

TYPO3 Backstage Development

  • 1. TYPO3 Backstage Development Oliver Hader 05/2016 Backstage
 Development May 7th, 2016
  • 2. TYPO3 Backstage Development Oliver Hader 05/2016 • living in Hof (Bavaria, Germany) • is Freelance Software Engineer • TYPO3 Core Developer since 2007 • studying at University of Applied Sciences Hof • in the past release manage & core team leader whois oliver.hader
  • 3. TYPO3 Backstage Development Oliver Hader 05/2016 • Backend Apps ~integration & user experience • Messaging & Job Queue ~system & development • Event Sourcing ~system & development Overview
  • 4. TYPO3 Backstage Development Oliver Hader 05/2016 • for editors • dealing with News, Events, Products • focus on a single task at a time • for developers & integrators • boilerplate code in backend modules • configuration over implementation Backend Apps ~scope
  • 5. TYPO3 Backstage Development Oliver Hader 05/2016 • research & development in 2015 • master thesis by Andreas Steiger • analyzing user actions & tasks • analyzing other products & solutions • defining components & concepts Backend Apps ~history
  • 6. TYPO3 Backstage Development Oliver Hader 05/2016 • reusable • tree components • filter components • toolbar components • results & preview • custom components Backend Apps ~components Source: Andreas Steiger, Master Thesis
  • 7. TYPO3 Backstage Development Oliver Hader 05/2016 • DRY & NIH phenomenon • configuration over implementation • defined & extensible vocabulary • YAML, JSON, XML, PHP, … • compare it to TCA… somehow Backend Apps ~configuration
  • 8. TYPO3 Backstage Development Oliver Hader 05/2016 • components as in Web Components? • which technology to choose? • native HTML5 Web Components • Angular2 ~2.0.0-RC1 in May 2016 • Polymer ~1.4.0 in March 2016 Backend Apps ~technology
  • 9. TYPO3 Backstage Development Oliver Hader 05/2016 • Templates • Imports • Custom Elements • Shadow DOM Web Components ~overview Source: http://webcomponents.org
  • 10. TYPO3 Backstage Development Oliver Hader 05/2016 <head>…
    <link  rel="import"  href="my-­‐component.html">…
 </head>
 <body>
    <my-­‐component  text="Some  text..."  class="css-­‐class"></my-­‐…>
 </body> Web Components ~markup <template>
    <div>
        <h1>{{text}}</h1>…<hr>…
    </div>
 </template>
 <script>
    var  MyComponent  =  document.registerElement('my-­‐component');
 </script> index.html my-component.html
  • 11. TYPO3 Backstage Development Oliver Hader 05/2016 • thesis • http://t3app.steiger.webseiten.cc/ Masterarbeit_Andreas_Steiger.pdf • prototype • http://t3app.steiger.webseiten.cc/start_app.html • further discussion • https://wiki.typo3.org/Blueprints/ContentModule Backend Apps ~resources
  • 12. TYPO3 Backstage Development Oliver Hader 05/2016 • defer actions that take ”longer” • split tasks into smaller chunks • trigger immediate actions • related to commands in general • distribute, delegate, transport Job Queue ~scope
  • 13. TYPO3 Backstage Development Oliver Hader 05/2016 • Producer & Consumer • different phases • single & direct queue • publish & subscribe pattern • remote procedure call • AMQP, MQTT, RabbitMQ, … Job Queue ~technology Source: https://www.rabbitmq.com/getstarted.html
  • 14. TYPO3 Backstage Development Oliver Hader 05/2016 • one task is split into chunks • one chunk has sub-chunks • chunks can be nested • future / promise pattern in PHP • asynchronous processing • non-blocking processing Job Queue ~chunking Task #3 Chunk A Chunk B Chunk B.1 Chunk B.2 Chunk C
  • 15. TYPO3 Backstage Development Oliver Hader 05/2016 • newsletter delivery • execute upgrade wizards • cloning elements & pages • generate many thumbnails • perform data encryption • apply event sourcing application state Job Queue ~use cases
  • 16. TYPO3 Backstage Development Oliver Hader 05/2016 • master thesis by Dustin Kinney • analyzing protocols & solutions • prototype focussed on jobs & tasks • ad-hoc & CLI workers • concept for sophisticated messaging • daemons & distributed workers Job Queue ~next:2016
  • 17. TYPO3 Backstage Development Oliver Hader 05/2016 • replace protocol and history in TYPO3 • record reliable events • apply and replay series of events • application state for any time • evaluate, measure & define • overcome overlaying flaws Event Sourcing ~scope
  • 18. TYPO3 Backstage Development Oliver Hader 05/2016 Event Sourcing ~current uid pid sorting sys_lang l18n_parent t3ver_wsid t3ver_state t3ver_oid header 296 88 256 0 0 0 0 0 Regular Element #0 297 89 256 0 0 0 0 0 Regular Element #1 298 89 512 0 0 0 0 0 Regular Element #2 299 89 768 0 0 0 0 0 Regular Element #3 300 89 1024 1 299 0 0 0 [Translate to Dansk:] Regular Element #3 302 89 640 1 298 1 1 0 [Translate to Dansk:] Regular Element #2 303 -1 640 1 298 1 -1 302 [Translate to Dansk:] Regular Element #2 301 -1 512 0 0 2 2 298 Regular Element #2 • translation of available content in workspace
  • 19. TYPO3 Backstage Development Oliver Hader 05/2016 Event Sourcing ~current 123 Workspace
 version? 136 149 Localization
 to fr_FR? Move
 Placeholder? 135 Workspace
 version? 152 151 Move
 Placeholder? 155 Localization
 to fr_CA? 164Language
 fallback? Workspace
 version… one (1!)
 record Live
 Record
  • 20. TYPO3 Backstage Development Oliver Hader 05/2016 • design pattern by Martin Fowler • currently final application state only • no information on how to get there • only persist events that happened • apply events to create application state • … any time, on any target system Event Sourcing ~technology
  • 21. TYPO3 Backstage Development Oliver Hader 05/2016 Event Sourcing ~technology Source: http://martinfowler.com/eaaDev/EventSourcing.html
  • 22. TYPO3 Backstage Development Oliver Hader 05/2016 • Command Query Response Segregation • design pattern by Greg Young • separate domain logic • read data (response) • write data (command) • introduces more complexity Event Sourcing ~CQRS
  • 23. TYPO3 Backstage Development Oliver Hader 05/2016 Event Sourcing ~CQRS Source: http://martinfowler.com/bliki/CQRS.html
  • 24. TYPO3 Backstage Development Oliver Hader 05/2016 Event Sourcing ~CQRS Source: http://martinfowler.com/bliki/CQRS.html
  • 25. TYPO3 Backstage Development Oliver Hader 05/2016 Event Sourcing ~example Revision Event Status 1 created “tt_content uid: 12 2 hidden “tt_content:123 uid: 123
 hidden: 3 updated “tt_content:123”
 { “title”: “Some record” } uid: 123
 hidden: 1
 title: “Some record 4 moved “tt_content:123”
 { “to”: “top” } uid: 123
 hidden: 1
 sorting: 0
 title: “Some record
  • 26. TYPO3 Backstage Development Oliver Hader 05/2016 Revision Event Status 5 forked “tt_content:123”
 { “workspace”: 1 } uid: 123
 t3ver_wsid: 1
 hidden: 1
 sorting: 0
 title: “Some record 6 updated “tt_content:123”
 { “workspace”: 1, “title”: “Changed” } uid: 123
 t3ver_wsid: 1
 hidden: 1
 sorting: 0
 title: “Changed 7 unhidden “tt_content:123 uid: 123
 hidden: 0
 sorting: 0
 title: “Some record 8 merged “tt_content:123”
 { “workspace”: 1 } uid: 123
 hidden: 0
 sorting: 0
 title: “Changed
  • 27. TYPO3 Backstage Development Oliver Hader 05/2016 Event Sourcing ~projections
  • 28. TYPO3 Backstage Development Oliver Hader 05/2016 • master thesis by Oliver Hader • analyzing patterns & solutions • define events and types for TYPO3 context • introduce event sourcing & logging • introduce application state behavior • concept about ”TYPO3 Time Machine” Event Sourcing ~next:2016
  • 29. TYPO3 Backstage Development Oliver Hader 05/2016 Thank you! ohader
 @ohader
 Oliver_Hader follow me