SlideShare ist ein Scribd-Unternehmen logo
1 von 19
EVENT STORMING
& EVENT SOURCING
WITH LAGOM
TYPO3
CAMP
BERLIN
27.06.2017
GERNOT SCHULMEISTER
Lives in Mönchengladbach
Developes websites with TYPO3 and Angular
Works for TeamWFP
Has a migration background and comes from
Southeast-Europe (Austria)
Likes operative CMS evaluations, Data science,
Software Architecture, Meetups, Bar camps
facebook.com/gernot.schulmeister
twitter.com/mistakanista1
SEITE 2
SCHEDULE
 Motivation
 Event Storming
 Microservice Frameworks
 Event Sourcing - CQRS
 Message Bus
MOTIVATION
 Event Storming seems to be a nice approach to plan
and
cut applications into domains
 Event sourcing is planned for TYPO3
 Microservice Frameworks have nice concepts
 Headless CMS become more important
 Checking out if the approach could be useful for
TYPO3
SEITE 4
EVENT STORMING
 Workshop method to create a deep understanding of a
software domain
 Part of domain driven design, business experts come
together with developers to explore the context of a
software problem to solve
 Make sure to solve the right problem
 Find the correct starting point and save iterations
 Include more stakeholders
 Avoid risks of strange, designed business processes
 Realise know how lacks & deficits early
SEITE 5
IF WE DON’T DO IT
 We solve a problem with software that would be better solved by
organisation and cause avoidable costs
 High refactoring costs if the domains have cut wrong especially for
microservices
 We think we understand what is required and realize later that we
did not know enough, which costs expensive iterations
 We ignore the contribution of some stakeholders because there were
too many at the beginning and realize later that their point of view
changes the required functionality
SEITE 6
HOW IT WORKS
 Brainstorming to find business events of your domain
 Formulate them in the past and write them on post its
 Examples for a shop: Order received, invoice created, payment
cleared, goods delivered
 Derive from these events, processes, data and user interfaces
 Event storming starts at the end not at the customer
requirements
 Result is domain knowledge which might be the basis of other
methods, like user stories
SEITE 7
WHAT IS NEEDED
 A room without chairs and tables with a big
empty space on the wall
 Fasten a roll of paper on the wall, where post
its can be fixed
 A flipchart to explain the meaning of the post
its
SEITE 8
Meaning Post it size Post it color
Business Small Orange
User Small Yellow
Aggregat Large Yellow
Command Small Blue
External
system
Large Pink
Read model Small Green
User interface Large White
Policy Small Violet
FLIPCHART
WITH LEGEND
SEITE 9
PROCESS
 Start with the orange post its to write business events
 Bring them in the right order on the timeline
 People will automatically start to discuss
cause – effect relations
 these discussions have the biggest value
 Refinement: explain the meaning, remove duplicates
 Extract the roots of the events: User actions, external systems, time, other domain
events
 Explain other elements of the model as soon as the appear
 Mark risks with the WTF post its
SEITE 10
RESORT AND RESULTS
 Take the post its from the timeline and group them around the
aggregates
 This makes the following connections clear:
 Which user causes which command
 Which commands effect which aggregates or external systems
and cause which changes
 Which aggregates or external systems cause under which commands which events
 Which events start which policies and from which events which read models are
generated
 Which policies call which new commands
SEITE 11
NEXT STEPS
 Bounded context are grouped around aggregates like purchase, stocks, sale, invoices
 Further refinement, design and realisation
 Aggregates and policies are basis for the design of microservices with specific
responsibilities and tasks
 Good maintainable structure of the system with less refactoring
 User stories, if you see a user triggering a command
 Read models describe information for the user to make a decision, interfaces are
placeholders for the required presentation of this information
 Basis for user experience and user centered design
SEITE 12
MICROSERVICE FRAMEWORK
 No definition or wiki entry so far
 System to set up an application consisting of microservices
 Unified communication between the services
 Easy development setup which allows to work on several
services at the same time
 Opinionated, takes decisions for the developer with a
standard setup
 Scalable and resilient each service as cluster with a variable
number of nodes
 Examples: Spring Boot, Dropwizard
SEITE 13
LAGOM
 just right, swedish for the scandinavian live style of no extremes
 Developed with Java 8 by lightbend, open source
 Asynchrone nature
 Thread per request model, but only few threads are used
 Hardly simple method request
 Default return value is a “CompletionStage” which can take on
callbacks
 Immutable, value or data objects: functional programming
 No changeable, shared data, no blocking requests
SEITE 14
EVENT SOURCING - CQRS
SEITE 15
 Event sourcing used for persistence, every change is a
database entry like a commit, saves all events
 CQRS: Command Query Responsability segregation
 Reading Object in the storage (RAM) for
representation in the user interface
 Big advantage if database has to scale on more
than one server
 Lagom persistence: cluster sharding
dynamically, variable number of nodes
at runtime
CASSANDRA
SEITE 16
 Used as default NoSQL database
 Distributed database administration system with high scalability and fail safety
 Key value store with CQL (Cassandra Query language) similar to SQL
 Columned based database, the partitioning is line based
 Fault tolerance: no single point of failure since data is replicated to several nodes
 No master node, each node can handle any request
 Tuneable level of consistency from „writes never fail“ to „block all replicas to be
readable“
 Hadoop integration with map reduce support
 No row level consistency (inserts in the same row in different columns at the same
time in different replicas)
KAFKA AS MESSAGE BUS
 Alternative for the pull approach to deliver data when required
 Push: changes in a service cause domain events which are published via a message
bus to other services, which have registered for this events
 The sent messages are then stored and handled locally in the services that have
registered for them
 Message broker to handle data streams with high throughput and low latency
 Runs obligatory in a cluster with a Zookeeper quorum
 Variable number of topics handle messages that are published by producer and read
by consumer
 Topics consist of partitions which are distributed to the brokers for load balancing
SEITE 17
DEVELOPING WITH LAGOM
 Comes with a Maven Plugin (Dependency Management like
Composer)
 Create a new project with a Maven Archetype
 Run the project with mvn lagom:runAll
 Hot reloading: automatic compilation after code changes
without new server start
 There are some demo projects to get started
 Impresses by its architecture and capability
 Improvements regarding monitoring, exchange of standard
components and integration of orchestration platforms like
Kubernetes are possible
SEITE 18
CONCLUSION
 Event storming:
 Brings developer with domain experts together
 Remarkable event which is often referred to later
 I think it is worth to try it out
 Lagom:
 Not necessary for TYPO3 developer but nice architecture and concepts
SEITE 19

Weitere ähnliche Inhalte

Ähnlich wie Event Storming & Event Sourcing with Lagom

ICS UserGroup - 2015 - Infrastructure Assessment - Analyze, Visualize and Opt...
ICS UserGroup - 2015 - Infrastructure Assessment - Analyze, Visualize and Opt...ICS UserGroup - 2015 - Infrastructure Assessment - Analyze, Visualize and Opt...
ICS UserGroup - 2015 - Infrastructure Assessment - Analyze, Visualize and Opt...Christoph Adler
 
Why Cloud Management Makes Sense
Why Cloud Management Makes SenseWhy Cloud Management Makes Sense
Why Cloud Management Makes SenseRightScale
 
Three SOA Case Studies
Three SOA Case StudiesThree SOA Case Studies
Three SOA Case StudiesPaul Fremantle
 
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...Christoph Adler
 
ASP.NET Core For The Agile Enterprise
ASP.NET Core For The Agile EnterpriseASP.NET Core For The Agile Enterprise
ASP.NET Core For The Agile EnterpriseDennis Moon
 
Best Practices for Building Successful Cloud Projects
Best Practices for Building Successful Cloud ProjectsBest Practices for Building Successful Cloud Projects
Best Practices for Building Successful Cloud ProjectsNati Shalom
 
Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture Andrew Blades
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignVMware Tanzu
 
IT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docxIT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docxvrickens
 
MS Cloud Day - Cloud Computing – A Crash Course for Architects
MS Cloud Day - Cloud Computing – A Crash Course for Architects MS Cloud Day - Cloud Computing – A Crash Course for Architects
MS Cloud Day - Cloud Computing – A Crash Course for Architects Spiffy
 
Eda on the azure services platform
Eda on the azure services platformEda on the azure services platform
Eda on the azure services platformYves Goeleven
 
Short reference architecture
Short reference architectureShort reference architecture
Short reference architectureSteve Feldman
 
Cloud Camp Milan 2K9 SUN Microsystems: Cloud Computing with Sun
Cloud Camp Milan 2K9 SUN Microsystems: Cloud Computing with SunCloud Camp Milan 2K9 SUN Microsystems: Cloud Computing with Sun
Cloud Camp Milan 2K9 SUN Microsystems: Cloud Computing with SunGabriele Bozzi
 
CloudCamp Milan 2009: Sun Microsystems
CloudCamp Milan 2009: Sun MicrosystemsCloudCamp Milan 2009: Sun Microsystems
CloudCamp Milan 2009: Sun MicrosystemsGabriele Bozzi
 
ISBG 2015 - Infrastructure Assessment - Analyze, Visualize and Optimize
ISBG 2015 - Infrastructure Assessment - Analyze, Visualize and OptimizeISBG 2015 - Infrastructure Assessment - Analyze, Visualize and Optimize
ISBG 2015 - Infrastructure Assessment - Analyze, Visualize and OptimizeChristoph Adler
 
Private cloud with z enterprise
Private cloud with z enterprisePrivate cloud with z enterprise
Private cloud with z enterpriseJim Porell
 
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesWindows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesComunidade NetPonto
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapShay Hassidim
 
IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6Strongback Consulting
 

Ähnlich wie Event Storming & Event Sourcing with Lagom (20)

12-Factor App
12-Factor App12-Factor App
12-Factor App
 
ICS UserGroup - 2015 - Infrastructure Assessment - Analyze, Visualize and Opt...
ICS UserGroup - 2015 - Infrastructure Assessment - Analyze, Visualize and Opt...ICS UserGroup - 2015 - Infrastructure Assessment - Analyze, Visualize and Opt...
ICS UserGroup - 2015 - Infrastructure Assessment - Analyze, Visualize and Opt...
 
Why Cloud Management Makes Sense
Why Cloud Management Makes SenseWhy Cloud Management Makes Sense
Why Cloud Management Makes Sense
 
Three SOA Case Studies
Three SOA Case StudiesThree SOA Case Studies
Three SOA Case Studies
 
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
 
ASP.NET Core For The Agile Enterprise
ASP.NET Core For The Agile EnterpriseASP.NET Core For The Agile Enterprise
ASP.NET Core For The Agile Enterprise
 
Best Practices for Building Successful Cloud Projects
Best Practices for Building Successful Cloud ProjectsBest Practices for Building Successful Cloud Projects
Best Practices for Building Successful Cloud Projects
 
Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven Design
 
IT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docxIT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docx
 
MS Cloud Day - Cloud Computing – A Crash Course for Architects
MS Cloud Day - Cloud Computing – A Crash Course for Architects MS Cloud Day - Cloud Computing – A Crash Course for Architects
MS Cloud Day - Cloud Computing – A Crash Course for Architects
 
Eda on the azure services platform
Eda on the azure services platformEda on the azure services platform
Eda on the azure services platform
 
Short reference architecture
Short reference architectureShort reference architecture
Short reference architecture
 
Cloud Camp Milan 2K9 SUN Microsystems: Cloud Computing with Sun
Cloud Camp Milan 2K9 SUN Microsystems: Cloud Computing with SunCloud Camp Milan 2K9 SUN Microsystems: Cloud Computing with Sun
Cloud Camp Milan 2K9 SUN Microsystems: Cloud Computing with Sun
 
CloudCamp Milan 2009: Sun Microsystems
CloudCamp Milan 2009: Sun MicrosystemsCloudCamp Milan 2009: Sun Microsystems
CloudCamp Milan 2009: Sun Microsystems
 
ISBG 2015 - Infrastructure Assessment - Analyze, Visualize and Optimize
ISBG 2015 - Infrastructure Assessment - Analyze, Visualize and OptimizeISBG 2015 - Infrastructure Assessment - Analyze, Visualize and Optimize
ISBG 2015 - Infrastructure Assessment - Analyze, Visualize and Optimize
 
Private cloud with z enterprise
Private cloud with z enterprisePrivate cloud with z enterprise
Private cloud with z enterprise
 
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesWindows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 Xap
 
IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6
 

Mehr von Gernot Schulmeister

Mehr von Gernot Schulmeister (8)

Rapidminer
RapidminerRapidminer
Rapidminer
 
Architecture & TYPO3
Architecture & TYPO3Architecture & TYPO3
Architecture & TYPO3
 
Architecture principles in relation to TYPO3
Architecture principles in relation to TYPO3Architecture principles in relation to TYPO3
Architecture principles in relation to TYPO3
 
Knigge for software architects
Knigge for software architectsKnigge for software architects
Knigge for software architects
 
Marketing automation tools
Marketing automation toolsMarketing automation tools
Marketing automation tools
 
TYPO3 Backend Apps Prototype
TYPO3 Backend Apps PrototypeTYPO3 Backend Apps Prototype
TYPO3 Backend Apps Prototype
 
CMS Evaluation with test implementations
CMS Evaluation with test implementationsCMS Evaluation with test implementations
CMS Evaluation with test implementations
 
Cms evaluation
Cms evaluationCms evaluation
Cms evaluation
 

Kürzlich hochgeladen

How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Onlineanilsa9823
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$kojalkojal131
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.soniya singh
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 

Kürzlich hochgeladen (20)

How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 

Event Storming & Event Sourcing with Lagom

  • 1. EVENT STORMING & EVENT SOURCING WITH LAGOM TYPO3 CAMP BERLIN 27.06.2017
  • 2. GERNOT SCHULMEISTER Lives in Mönchengladbach Developes websites with TYPO3 and Angular Works for TeamWFP Has a migration background and comes from Southeast-Europe (Austria) Likes operative CMS evaluations, Data science, Software Architecture, Meetups, Bar camps facebook.com/gernot.schulmeister twitter.com/mistakanista1 SEITE 2
  • 3. SCHEDULE  Motivation  Event Storming  Microservice Frameworks  Event Sourcing - CQRS  Message Bus
  • 4. MOTIVATION  Event Storming seems to be a nice approach to plan and cut applications into domains  Event sourcing is planned for TYPO3  Microservice Frameworks have nice concepts  Headless CMS become more important  Checking out if the approach could be useful for TYPO3 SEITE 4
  • 5. EVENT STORMING  Workshop method to create a deep understanding of a software domain  Part of domain driven design, business experts come together with developers to explore the context of a software problem to solve  Make sure to solve the right problem  Find the correct starting point and save iterations  Include more stakeholders  Avoid risks of strange, designed business processes  Realise know how lacks & deficits early SEITE 5
  • 6. IF WE DON’T DO IT  We solve a problem with software that would be better solved by organisation and cause avoidable costs  High refactoring costs if the domains have cut wrong especially for microservices  We think we understand what is required and realize later that we did not know enough, which costs expensive iterations  We ignore the contribution of some stakeholders because there were too many at the beginning and realize later that their point of view changes the required functionality SEITE 6
  • 7. HOW IT WORKS  Brainstorming to find business events of your domain  Formulate them in the past and write them on post its  Examples for a shop: Order received, invoice created, payment cleared, goods delivered  Derive from these events, processes, data and user interfaces  Event storming starts at the end not at the customer requirements  Result is domain knowledge which might be the basis of other methods, like user stories SEITE 7
  • 8. WHAT IS NEEDED  A room without chairs and tables with a big empty space on the wall  Fasten a roll of paper on the wall, where post its can be fixed  A flipchart to explain the meaning of the post its SEITE 8 Meaning Post it size Post it color Business Small Orange User Small Yellow Aggregat Large Yellow Command Small Blue External system Large Pink Read model Small Green User interface Large White Policy Small Violet
  • 10. PROCESS  Start with the orange post its to write business events  Bring them in the right order on the timeline  People will automatically start to discuss cause – effect relations  these discussions have the biggest value  Refinement: explain the meaning, remove duplicates  Extract the roots of the events: User actions, external systems, time, other domain events  Explain other elements of the model as soon as the appear  Mark risks with the WTF post its SEITE 10
  • 11. RESORT AND RESULTS  Take the post its from the timeline and group them around the aggregates  This makes the following connections clear:  Which user causes which command  Which commands effect which aggregates or external systems and cause which changes  Which aggregates or external systems cause under which commands which events  Which events start which policies and from which events which read models are generated  Which policies call which new commands SEITE 11
  • 12. NEXT STEPS  Bounded context are grouped around aggregates like purchase, stocks, sale, invoices  Further refinement, design and realisation  Aggregates and policies are basis for the design of microservices with specific responsibilities and tasks  Good maintainable structure of the system with less refactoring  User stories, if you see a user triggering a command  Read models describe information for the user to make a decision, interfaces are placeholders for the required presentation of this information  Basis for user experience and user centered design SEITE 12
  • 13. MICROSERVICE FRAMEWORK  No definition or wiki entry so far  System to set up an application consisting of microservices  Unified communication between the services  Easy development setup which allows to work on several services at the same time  Opinionated, takes decisions for the developer with a standard setup  Scalable and resilient each service as cluster with a variable number of nodes  Examples: Spring Boot, Dropwizard SEITE 13
  • 14. LAGOM  just right, swedish for the scandinavian live style of no extremes  Developed with Java 8 by lightbend, open source  Asynchrone nature  Thread per request model, but only few threads are used  Hardly simple method request  Default return value is a “CompletionStage” which can take on callbacks  Immutable, value or data objects: functional programming  No changeable, shared data, no blocking requests SEITE 14
  • 15. EVENT SOURCING - CQRS SEITE 15  Event sourcing used for persistence, every change is a database entry like a commit, saves all events  CQRS: Command Query Responsability segregation  Reading Object in the storage (RAM) for representation in the user interface  Big advantage if database has to scale on more than one server  Lagom persistence: cluster sharding dynamically, variable number of nodes at runtime
  • 16. CASSANDRA SEITE 16  Used as default NoSQL database  Distributed database administration system with high scalability and fail safety  Key value store with CQL (Cassandra Query language) similar to SQL  Columned based database, the partitioning is line based  Fault tolerance: no single point of failure since data is replicated to several nodes  No master node, each node can handle any request  Tuneable level of consistency from „writes never fail“ to „block all replicas to be readable“  Hadoop integration with map reduce support  No row level consistency (inserts in the same row in different columns at the same time in different replicas)
  • 17. KAFKA AS MESSAGE BUS  Alternative for the pull approach to deliver data when required  Push: changes in a service cause domain events which are published via a message bus to other services, which have registered for this events  The sent messages are then stored and handled locally in the services that have registered for them  Message broker to handle data streams with high throughput and low latency  Runs obligatory in a cluster with a Zookeeper quorum  Variable number of topics handle messages that are published by producer and read by consumer  Topics consist of partitions which are distributed to the brokers for load balancing SEITE 17
  • 18. DEVELOPING WITH LAGOM  Comes with a Maven Plugin (Dependency Management like Composer)  Create a new project with a Maven Archetype  Run the project with mvn lagom:runAll  Hot reloading: automatic compilation after code changes without new server start  There are some demo projects to get started  Impresses by its architecture and capability  Improvements regarding monitoring, exchange of standard components and integration of orchestration platforms like Kubernetes are possible SEITE 18
  • 19. CONCLUSION  Event storming:  Brings developer with domain experts together  Remarkable event which is often referred to later  I think it is worth to try it out  Lagom:  Not necessary for TYPO3 developer but nice architecture and concepts SEITE 19