query or command - toruń jug...vert.x - asynchronous web communication rxjava - reactive view...
TRANSCRIPT
![Page 1: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/1.jpg)
Query or Command(Short) Introduction to CQRS
Zbyszko PapierskiSolutions Architect @ allegro.plTwitter: @ZPapierskiLinkedin: https://www.linkedin.com/in/zbyszko
![Page 2: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/2.jpg)
C.R.U.D.
![Page 3: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/3.jpg)
CommandQueryResponsibilitySegregation
Greg Young
Bertrand Meyer
Martin Fowler
![Page 4: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/4.jpg)
Command (vs) Query
![Page 5: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/5.jpg)
Responsibility Segregation
![Page 6: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/6.jpg)
![Page 7: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/7.jpg)
![Page 8: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/8.jpg)
![Page 9: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/9.jpg)
NOT one style to rule them all
![Page 10: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/10.jpg)
scalable but
eventually consistent
![Page 11: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/11.jpg)
more elasticbut
more (globally) complex
![Page 12: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/12.jpg)
What’s next?
![Page 13: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/13.jpg)
Event Sourcing
![Page 14: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/14.jpg)
Task Based UI
Google says you don’t need that save button...
![Page 15: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/15.jpg)
Technology Stack?
![Page 16: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/16.jpg)
Axon Framework
Jdon
Anything you like
![Page 17: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/17.jpg)
Stack Example - communication
● Kafka - distributed pub/sub● AngularJS - js framework with good
ansychronous mechanisms● Vert.X - asynchronous web
communication● RxJava - Reactive view changes
![Page 18: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/18.jpg)
Stack Example - db solutions
● any db you need ● Cassandra - extremely fast writes and
pretty fast reads● MongoDB - fast document store● Akka Persistence - great
implementation of Event Sourcing
![Page 19: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/19.jpg)
Key Takeaways
● As always - “right tool for the job”● Build your views asynchronously● Consider what is the best model for
each query and each command● Consider your consistency and
performance requirements
![Page 20: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/20.jpg)
Mandatory Links Slide
● https://cqrs.wordpress.com/ - not updated, but interesting read
● http://martinfowler.com/bliki/CQRS.html - Martin Fowler on CQRS
● http://www.axonframework.org/ ● http://en.jdon.com/
![Page 21: Query or Command - Toruń JUG...Vert.X - asynchronous web communication RxJava - Reactive view changes Stack Example - db solutions any db you need Cassandra - extremely fast writes](https://reader034.vdocuments.mx/reader034/viewer/2022042223/5ec9746f21939034e86c7630/html5/thumbnails/21.jpg)
???