Event Sourcing and CQRS are the new buzz words for a while now. Driven by the modernization needs of old monolithic applications, the industry's march towards more modular applications through microservices seems unstoppable. But you don't have to use latest buzzy microservices frameworks to build rock solid and modular applications. You can also use proven technology like Akka. This talk gives an overview about event sourcing and how to achieve this with Akka and Java 8. You'll learn how CQRS fits into the puzzle and what other technologies are there to help you build state of the art applications.
2. Lightbend
Headquarters in
San Francisco &
Lausanne,
Switzerland
>2 million
downloads
Lightbend
Reactive
Platform
Originators of the
Reactive Manifesto
>17,000 signers
Reactive Experts
in 20 Countries
around the globe
3. About me
Some things I like Some things I don’t like
IG: @thatskiki
Heights
Wild wildlife
Unintentional Sharing
These things
14. Obligations diverge into unpredictable outcomes from definite
beginnings ⇒ decreased certainty
Promises converge towards a definite outcome from unpredictable
beginnings ⇒ improved certainty
47. Technology Implications
• The storage system becomes an additive only architecture
• Append-only architectures distribute
• Far fewer locks to deal with
• Horizontal Partitioning is difficult for a relational model
48. Business Implications
• Criteria is tracked from inception as an event stream
• You can answer questions form the origin of the system
• You can answer questions not asked yet!
• Natural audit log
50. An Open Source framework for building micro service systems
51. Rate of change with levels of
abstraction
Low level languages
High level languages
Libraries / packages
Application Frameworks
Application Networking
System Building Frameworks
Rate of change Levels of abstraction
53. Web Application Framework
Concurrency Toolkit Runtime
Thin, powerful abstraction over
Microservice system framework
Other curated tools,
architectural
principles and
patterns used for
building reactive
microservice systems
54. Enterprise Challenge
Build faster
Maintain architectural integrity as you move fast
Enterprise software development is a high stakes game
Success is high reward, failure is high risk
56. Lagom makes reasonable choices for
you.
It’s built on message-driven technology
that’s highly responsive, elastic and fault-
tolerant.
It’s Reactive.
57. Lagom Components
Akka – Persistence, PubSub, Cluster, Streaming Async Services
Play Framework – Web framework
Cassandra – managing data persistence
Guice – dependency injection
SLF4J & Logback – Logging
Typesafe Config – configuration
JSON Serialization – Play JSON (Scala) Jackson (Java)
Service Gateway
Message Broker - Kafka
66. Practical Productivity
Scala
&
Java API
Use Any IDE
Quick Start
w/ Batteries
Included
Hot Reload
& Single
Command
to Runall
Developer
productivity
is a core
feature of
the
Framework
78. Lagom & your Legacy
• Language agnostic communication with external services
• Safe Interaction with legacy systems via circuit breakers
• No need to tear everything down and start over
• Embraces polyglot systems
79. With Withoutor
Governance, Templates, Ref Apps,
Documentation, scaling architecture
expertise, etc.
Boot
Reactor
Kafka
Cassandra
Netflix
Patterns
asynchronous REST
streaming CQRS
Event Sourcing
Eventual consistency
DDD
Service locator
Java
Eventuate
Axon
Spring Cloud
…
Play
Akka
Kafka
CassandraScala
Patterns
asynchronous REST
streaming CQRS
Event Sourcing
Eventual consistency
DDD
Service locator
Java
80. In Summary
In order to keep up with the pace of change and
maintain architectural integrity as you move, try
using a framework that provides an abstraction
above the application level – at the system level.
….and what if you don’t?
81. Try Lagom
• www.lagomframework.com , https://github.com/lagom
• Basic example “Hello World” -
https://www.lagomframework.com/get-started-scala.html
• More robust example “Online Auction” -
https://github.com/lagom/online-auction-scala
• Ask me for a demo:
• kiki@lightbend.com
• Twitter: @kikisworldrace