TYPO3 Backstage Development

Oliver Hader
Oliver HaderM.Sc. at TYPO3, hofhäckerei, inpublica.it
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
1 of 29

Recommended

TYPO3 Event Sourcing by
TYPO3 Event SourcingTYPO3 Event Sourcing
TYPO3 Event SourcingOliver Hader
1.4K views43 slides
H4CK1N6 - Web Application Security by
H4CK1N6 - Web Application SecurityH4CK1N6 - Web Application Security
H4CK1N6 - Web Application SecurityOliver Hader
2.1K views52 slides
SAST für TYPO3 Extensions by
SAST für TYPO3 ExtensionsSAST für TYPO3 Extensions
SAST für TYPO3 ExtensionsOliver Hader
589 views37 slides
Hacking TYPO3 v9 by
Hacking TYPO3 v9Hacking TYPO3 v9
Hacking TYPO3 v9Oliver Hader
1.5K views30 slides
Hacking TYPO3 v9 (T3DD19 edition) by
Hacking TYPO3 v9 (T3DD19 edition)Hacking TYPO3 v9 (T3DD19 edition)
Hacking TYPO3 v9 (T3DD19 edition)Oliver Hader
2.1K views53 slides
Web Application Security Workshop (T3DD19) by
Web Application Security Workshop (T3DD19)Web Application Security Workshop (T3DD19)
Web Application Security Workshop (T3DD19)Oliver Hader
2.4K views91 slides

More Related Content

What's hot

Security Automation using ZAP by
Security Automation using ZAPSecurity Automation using ZAP
Security Automation using ZAPVaibhav Gupta
1.2K views18 slides
CMS Hacking Tricks - DerbyCon 4 - 2014 by
CMS Hacking Tricks - DerbyCon 4 - 2014CMS Hacking Tricks - DerbyCon 4 - 2014
CMS Hacking Tricks - DerbyCon 4 - 2014Greg Foss
2.5K views67 slides
There’s an OpenBullet Attack Config for Your Site – What Should You Do? by
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
574 views16 slides
ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2... by
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
162 views6 slides
Zap vs burp by
Zap vs burpZap vs burp
Zap vs burpTomasz Fajks
11.7K views12 slides
Wi-Fi Hotspot Attacks by
Wi-Fi Hotspot AttacksWi-Fi Hotspot Attacks
Wi-Fi Hotspot AttacksGreg Foss
10.3K views73 slides

What's hot(11)

Security Automation using ZAP by Vaibhav Gupta
Security Automation using ZAPSecurity Automation using ZAP
Security Automation using ZAP
Vaibhav Gupta1.2K views
CMS Hacking Tricks - DerbyCon 4 - 2014 by Greg Foss
CMS Hacking Tricks - DerbyCon 4 - 2014CMS Hacking Tricks - DerbyCon 4 - 2014
CMS Hacking Tricks - DerbyCon 4 - 2014
Greg Foss2.5K views
There’s an OpenBullet Attack Config for Your Site – What Should You Do? by DevOps.com
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.com574 views
ATT&CKcon 2.0 2019 - Tracking and measuring your ATT&CK coverage with ATT&CK2... by Mauricio Velazco
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 Velazco162 views
Wi-Fi Hotspot Attacks by Greg Foss
Wi-Fi Hotspot AttacksWi-Fi Hotspot Attacks
Wi-Fi Hotspot Attacks
Greg Foss10.3K views
Jakob Holderbaum - Managing Shared secrets using basic Unix tools by DevSecCon
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
DevSecCon357 views
REST API Pentester's perspective by SecuRing
REST API Pentester's perspectiveREST API Pentester's perspective
REST API Pentester's perspective
SecuRing4.7K views
Justin collins - Practical Static Analysis for continuous application delivery by DevSecCon
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
DevSecCon285 views
Badneedles by dimisec
BadneedlesBadneedles
Badneedles
dimisec1.9K views
SANS @Night Talk: SQL Injection Exploited by Micah Hoffman
SANS @Night Talk: SQL Injection ExploitedSANS @Night Talk: SQL Injection Exploited
SANS @Night Talk: SQL Injection Exploited
Micah Hoffman6.3K views

Viewers also liked

La vida de zack brown by
La vida de zack brownLa vida de zack brown
La vida de zack brownzb866608mhs
110 views5 slides
Jociele (1) by
Jociele (1)Jociele (1)
Jociele (1)SimoneHelenDrumond
239 views4 slides
CETÁCEOS by
CETÁCEOSCETÁCEOS
CETÁCEOSMaría José Martínez Ricardo
308 views9 slides
Narsiza y aida by
Narsiza y aidaNarsiza y aida
Narsiza y aidaNarcisa Ostaiza
355 views10 slides
Drucker chapter 4 by
Drucker chapter 4Drucker chapter 4
Drucker chapter 4detjen
241 views10 slides
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804 by
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-1601081218047df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804Akshat Gupta
100 views14 slides

Viewers also liked(20)

La vida de zack brown by zb866608mhs
La vida de zack brownLa vida de zack brown
La vida de zack brown
zb866608mhs110 views
Drucker chapter 4 by detjen
Drucker chapter 4Drucker chapter 4
Drucker chapter 4
detjen241 views
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804 by Akshat Gupta
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-1601081218047df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
7df1c46f-90f5-4d0f-af18-d34ce2108ca6-160108121804
Akshat Gupta100 views
How to prevent humanitarian debacle in the contemporary world by Fernando Alcoforado
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 by detjen
Chapter 6Chapter 6
Chapter 6
detjen359 views
Duvidas de lei de transporte escolar by Eric Holiness
Duvidas de lei de transporte escolar Duvidas de lei de transporte escolar
Duvidas de lei de transporte escolar
Eric Holiness348 views
Maria Fernanda Camacho Aguillon 3.2 by Marifer342
Maria Fernanda Camacho Aguillon 3.2Maria Fernanda Camacho Aguillon 3.2
Maria Fernanda Camacho Aguillon 3.2
Marifer342689 views
Chapter 4 by detjen
Chapter 4Chapter 4
Chapter 4
detjen1.2K views
Sopa de letras by teresa2013
Sopa de letrasSopa de letras
Sopa de letras
teresa20132.9K views
Газета дружба №3 by RudnSite
Газета дружба №3Газета дружба №3
Газета дружба №3
RudnSite2.8K views
дружба 16 by PR_RUDN
дружба 16дружба 16
дружба 16
PR_RUDN2.9K views
Escultura e pintura românicas by cattonia
Escultura e pintura românicasEscultura e pintura românicas
Escultura e pintura românicas
cattonia7.4K views
Tratamento De ResíDuos SóLidos by Nuno Correia
Tratamento De ResíDuos SóLidosTratamento De ResíDuos SóLidos
Tratamento De ResíDuos SóLidos
Nuno Correia9.6K views
TCC - O LÚDICO NA EDUCAÇÃO INFANTIL by JJOAOPAULO7
TCC -  O LÚDICO NA EDUCAÇÃO INFANTILTCC -  O LÚDICO NA EDUCAÇÃO INFANTIL
TCC - O LÚDICO NA EDUCAÇÃO INFANTIL
JJOAOPAULO7206.2K views

Similar to TYPO3 Backstage Development

Automated Production Ready ML at Scale by
Automated Production Ready ML at ScaleAutomated Production Ready ML at Scale
Automated Production Ready ML at ScaleDatabricks
665 views28 slides
Silicon Valley Code Camp 2016 - MongoDB in production by
Silicon Valley Code Camp 2016 - MongoDB in productionSilicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionDaniel Coupal
544 views47 slides
Staying Close to Experts with Executable Specifications by
Staying Close to Experts with Executable SpecificationsStaying Close to Experts with Executable Specifications
Staying Close to Experts with Executable SpecificationsVagif Abilov
595 views44 slides
Bdf16 big-data-warehouse-case-study-data kitchen by
Bdf16 big-data-warehouse-case-study-data kitchenBdf16 big-data-warehouse-case-study-data kitchen
Bdf16 big-data-warehouse-case-study-data kitchenChristopher Bergh
320 views52 slides
20141024 AgileDC 2014 Conf How much testing is enough for software that can c... by
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
505 views29 slides
Beyond DevOps: How Netflix Bridges the Gap? by
Beyond DevOps: How Netflix Bridges the Gap?Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?C4Media
1.4K views73 slides

Similar to TYPO3 Backstage Development(20)

Automated Production Ready ML at Scale by Databricks
Automated Production Ready ML at ScaleAutomated Production Ready ML at Scale
Automated Production Ready ML at Scale
Databricks665 views
Silicon Valley Code Camp 2016 - MongoDB in production by Daniel Coupal
Silicon Valley Code Camp 2016 - MongoDB in productionSilicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in production
Daniel Coupal544 views
Staying Close to Experts with Executable Specifications by Vagif Abilov
Staying Close to Experts with Executable SpecificationsStaying Close to Experts with Executable Specifications
Staying Close to Experts with Executable Specifications
Vagif Abilov595 views
Bdf16 big-data-warehouse-case-study-data kitchen by Christopher Bergh
Bdf16 big-data-warehouse-case-study-data kitchenBdf16 big-data-warehouse-case-study-data kitchen
Bdf16 big-data-warehouse-case-study-data kitchen
Christopher Bergh320 views
20141024 AgileDC 2014 Conf How much testing is enough for software that can c... by Craeg Strong
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 Strong505 views
Beyond DevOps: How Netflix Bridges the Gap? by C4Media
Beyond DevOps: How Netflix Bridges the Gap?Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?
C4Media1.4K views
Qcon beijing 2010 by Vonbo
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
Vonbo566 views
Alfresco Development Framework Basic by Mario Romano
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
Mario Romano1.2K views
Introduction to cypress in Angular (Chinese) by Hong Tat Yew
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)
Hong Tat Yew270 views
Developer Night - Opticon18 by Optimizely
Developer Night - Opticon18Developer Night - Opticon18
Developer Night - Opticon18
Optimizely535 views
Building reliable apps with cdk by RaphaelManke1
Building reliable apps with cdkBuilding reliable apps with cdk
Building reliable apps with cdk
RaphaelManke122 views
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools by Amazon Web Services
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 Services1.5K views
[OPD 2019] Governance as a missing part of IT security architecture by OWASP
[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
OWASP162 views
Introduction to angular with a simple but complete project by Jadson Santos
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 Santos12.9K views
Modern Reconnaissance Phase on APT - protection layer by Shakacon
Modern Reconnaissance Phase on APT - protection layerModern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layer
Shakacon789 views
Agile Secure Cloud Application Development Management by Adam Getchell
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
Adam Getchell986 views
Benchmarking at Parse by Travis Redman
Benchmarking at ParseBenchmarking at Parse
Benchmarking at Parse
Travis Redman1.2K views
Advanced Benchmarking at Parse by MongoDB
Advanced Benchmarking at ParseAdvanced Benchmarking at Parse
Advanced Benchmarking at Parse
MongoDB1.8K views

More from Oliver Hader

T3DD23 Content Security Policy - Concept, Strategies & Pitfalls by
T3DD23 Content Security Policy - Concept, Strategies & PitfallsT3DD23 Content Security Policy - Concept, Strategies & Pitfalls
T3DD23 Content Security Policy - Concept, Strategies & PitfallsOliver Hader
94 views48 slides
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?" by
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
555 views54 slides
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit) by
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)Oliver Hader
2.4K views100 slides
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P... by
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
1.8K views10 slides
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS by
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSWebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSOliver Hader
2.8K views23 slides
Web Components by
Web ComponentsWeb Components
Web ComponentsOliver Hader
1.3K views18 slides

More from Oliver Hader(12)

T3DD23 Content Security Policy - Concept, Strategies & Pitfalls by Oliver Hader
T3DD23 Content Security Policy - Concept, Strategies & PitfallsT3DD23 Content Security Policy - Concept, Strategies & Pitfalls
T3DD23 Content Security Policy - Concept, Strategies & Pitfalls
Oliver Hader94 views
TYPO3camp Munich 2018 - Keynote - "Wo woll'n mer denn hin?" by 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?"
Oliver Hader555 views
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit) by Oliver Hader
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
TYPO3 CMS - Datenmodifikation & Event Sourcing (Masterarbeit)
Oliver Hader2.4K views
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P... by 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...
Oliver Hader1.8K views
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS by Oliver Hader
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSWebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
Oliver Hader2.8K views
Web application security by Oliver Hader
Web application securityWeb application security
Web application security
Oliver Hader1.4K views
Contribute to TYPO3 CMS by Oliver Hader
Contribute to TYPO3 CMSContribute to TYPO3 CMS
Contribute to TYPO3 CMS
Oliver Hader1.3K views
T3CON13DE - TYPO3 CMS Team by Oliver Hader
T3CON13DE - TYPO3 CMS TeamT3CON13DE - TYPO3 CMS Team
T3CON13DE - TYPO3 CMS Team
Oliver Hader795 views
TYPO3camp Regensburg: TYPO3 6.0 by Oliver Hader
TYPO3camp Regensburg: TYPO3 6.0TYPO3camp Regensburg: TYPO3 6.0
TYPO3camp Regensburg: TYPO3 6.0
Oliver Hader742 views
TYPO3 Inline Relational Record Editing (IRRE) by Oliver Hader
TYPO3 Inline Relational Record Editing (IRRE)TYPO3 Inline Relational Record Editing (IRRE)
TYPO3 Inline Relational Record Editing (IRRE)
Oliver Hader3.3K views
TYPO3 4.6 & TYPO3 4.7 by Oliver Hader
TYPO3 4.6 & TYPO3 4.7TYPO3 4.6 & TYPO3 4.7
TYPO3 4.6 & TYPO3 4.7
Oliver Hader1.3K views

Recently uploaded

Business Analyst Series 2023 - Week 4 Session 7 by
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
110 views31 slides
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueShapeBlue
134 views54 slides
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPoolShapeBlue
56 views10 slides
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesShapeBlue
178 views15 slides
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc
130 views29 slides
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...ShapeBlue
59 views13 slides

Recently uploaded(20)

Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10110 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue134 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue56 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue178 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc130 views
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue59 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue52 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue113 views
State of the Union - Rohit Yadav - Apache CloudStack by ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue218 views
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue74 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue105 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue191 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software373 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson142 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue75 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue48 views

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