These are the slides from our meetup/workshop: "Event-sourced system through Reactive Streams" that we organized on 22 nov 2018.
https://www.meetup.com/Reactive-Programming-Belgium/events/254708703/
4. Reactive Programming Belgium
Your non-blocking resource in a reactive world
“We believe that RP is a good fit for
the challenges that
current applications/architectures entail”
5. Reactive Programming Belgium
Your non-blocking resource in a reactive world
• Research
• Share
• Blog
http://www.reactiveprogramming.be
• Meetups
https://www.meetup.com/Reactive-Programming-Belgium/
• Presentations
• ...
6. Reactive Programming Belgium
Your non-blocking resource in a reactive world
• Want to help?
• Writing articles (blog)
• Ideas/speakers/presenting…
• Prepare workshops
• Ad-hoc experiments
• ...
7. Reactive Programming Belgium
Your non-blocking resource in a reactive world
• Workshop :
‘Event-sourced system through Reactive Streams’
9. Reactive programming
Applications today
• Applications today
• Increased magnitude of scale
• Big data (IoT, devices, …)
• Realtime
• Ex. Flight recorder
1 sec of flight = 1.5 TB of data
• Re-think the way we create applications
11. Reactive programming
Yet another programming model?
• Reactive
Something that responds to stimuli and actions
• Reactive Programming
• Rehashed programming model that emphasizes on scalability & response
• A way to build a scalable architecture that’s resilient and quick to react to
stimuli
• Ex. spreadsheet
12. Reactive programming
Data pipeline
• CRUD
• database -> function/process -> database
• Data pipeline
• data -> function -> data -> function -> data
• Data transformation instead of data manipulation
25. Project reactor
Getting started
• https://github.com/vanseverk/projectreactorintro
• IDE
• IntelliJ : mark ‘test’ folder as ‘test sources root’
• TODO 01 – 06
• Extra (backpressure)
• TODO 07 - 08
27. Event Sourcing
Intro
• Persist events instead of domain objects
• Immutable event-log
• Replaying events can help development, debugging
• No need to lock DB tables
• Can be a perfect fit in event-driven architectures
• Can be designed to handle temporary partitioning
• Microservices handle (or replay) events and store what they require
• Eventual consistency
• Reactive Programming + Events -> Reactive Event Streaming
28. Event Sourcing
Intro
• Introducting: NATS
• https://nats.io/
• High performance messaging system for cloud native applications, IoT
messaging, and microservices architectures
• High performance, lightweight, many extensions
29. Event Sourcing
Intro
• Introducing: NATS Streaming
• Event Sourcing + Streaming including replay from time or sequence number
• Durable subscriptions for transient clients
• Persistent/guaranteed (at least once) message delivery
• Pub/Sub ; Request/Reply; Queueing to share work