PragmaticBookshelf

PragmaticBookshelf

Forum Sponsor

Real-World Event Sourcing (PragProg)

Kevin Hoffman

edited by Kelly Talbot @KellyTalbot

Reality is event-sourced; your mind processes sight, sound, taste, smell, and touch to create its perception of reality. Software isn’t that different. Applications use streams of incoming data to create their own realities, and when you interpret that data as events containing state and context, even some of the most complex problems become easily solvable. Unravel the theory behind event sourcing and discover how to put this approach into practice with practical, hands-on coding examples. From early-stage development through production and release, you’ll unlock powerful new ways of clearing even the toughest programming hurdles.

Our applications are bombarded with data. It’s hard enough to derive state from that data, let alone discover how we arrived at that state. With event sourcing you can treat the stream of data as a simple sequence of events that you use to construct whatever state you need. Event sourcing is more than events; it adds patterns, rules, and constraints to produce robust and easy-to-maintain systems. In this book, you’ll learn which rules can never be broken and which ones are flexible. By grounding yourself in theory, rules, and practical approaches, you’ll be able to build real-world, event-sourced applications.

Get your hands dirty with fundamental event-sourcing building blocks such as commands, aggregates, projectors, process managers, injectors, and notifiers. Combine these building blocks to produce elegant solutions to complex problems. Leave “hello world” far behind as you tackle the more advanced aspects of event sourcing that give you the confidence you need to run these applications in production. Leverage event sourcing to create distributed applications with ease; model and handle failure; and deal with replays, schema evolution, security, and much more.

This book doesn’t shy away from confronting the hard parts of event sourcing, instead giving you clear advice and examples for tackling the most difficult details.

Empower your applications with the full force of event sourcing today.


Kevin Hoffman is the Engineering Director for Cloud Services at Synadia, the company behind NATS, a popular messaging and streaming server. Kevin specializes in distributed applications and has made enough event sourcing mistakes on his own to fill a book with what he’s learned and experienced.


Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “devtalk.com" at checkout :+1:

Most Liked

nulltree

nulltree

No expert on the topic so can’t comment on the content per se, but I read the first two chapters and must compliment the experience so far.

The book gently introduces event sourcing, points out pitfalls, gradually builds up the pace and simultaneously is engaging to read. Kudos @autodidaddict

More personally, this way of modelling data and state seems to intuitively ‘click’ for me. Now I just need a good reason to use it in the real world (:

autodidaddict

autodidaddict

Author of Real World Event Sourcing

Glad you’re enjoying it! Comments like this make all the hard work worth it

chemist

chemist

Hello Kevin, commend you on tackling a challenging topic.

  1. Are you using any popular libraries such as incident?

  2. In what way will this book be different from other books that tackled ES. Such as the “building conduit” book

https://leanpub.com/buildingconduit/read#leanpub-auto-testing-user-registration-validation

  1. Will you also cover the more complicated but important areas such as PM and sagas, as well?

  2. Hope you can also offer your opinions on how to architect an ES system as well.
    Thanks

imposter_syndrome

imposter_syndrome

Looking forward to reading this as well.

meraj_enigma

meraj_enigma

Just finished reading the book. Concepts were presented with clarity. I was able to type in and run pretty much all the code in the book and it worked!

However, missed a chapter on deploying such system in production. Is there any plan to include such a chapter in future?

I myself was playing with this guide - Deployment — Commanded v1.4.6 and was able to setup a multi-node cluster using global registry. However, this part did not work as expected - Running on a cluster of nodes — EventStore v1.4.6

After doing the clustering I was getting all event generated 3 times as I think each node was executing the same commands/events. May be the application needs to be modified to be cluster aware to avoid this? but no idea at this point how!

In any case, thanks for writing this unique book using Elixir language!

Where Next?

Popular in Books Top

AstonJ
by Saša Jurić Elixir in Action teaches you to apply the new Elixir programming language to practical problems associated with scalabilit...
New
radar
by Ryan Bigg Joy of Elixir came about because I saw that there was not very much when it comes to absolute beginner material for lear...
New
PragmaticBookshelf
Peter Ullrich (@PJUllrich) edited by Michael Swaine @michaelswaine Data is at the core of every business, but it is useless if nobody ca...
New
PragmaticBookshelf
Stephen Bussey @sb8244 edited by Jacquelyn Carter @jkcarter Elixir will change the way you think about programming. Use your Ruby experi...
New
AstonJ
by Fred Hebert This book intends to be a little guide about how to be the Erlang medic in a time of war. It is first and foremost a col...
New
AstonJ
by Wolfgang Loder Learn and understand Erlang and Elixir and develop a working knowledge of the concepts of functional programming that...
New
AstonJ
By Francesco Cesarini, Simon Thompson This book is an in-depth introduction to Erlang, a programming language ideal for any situation wh...
New
AstonJ
by Benjamin Tan Wei Hao The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin w...
New
AstonJ
by Dave Thomas This book is the introduction to Elixir for experienced programmers, completely updated for Elixir 1.6 and beyond. Explor...
New
New

Other popular topics Top

Tee
can someone please explain to me how Enum.reduce works with maps
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
lk-geimfari
What is most correct way to open, read and parse JSON file with poison? For example if we have example.json file in root of some projec...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
AstonJ
by Lance Halvorsen Elixir and Phoenix are generating tremendous excitement as an unbeatable platform for building modern web application...
460 27162 124
New

We're in Beta

About us Mission Statement