the native web
Event-sourcing
Concepts
Event-sourcing is a persistence strategy that appends data changes to an increasing stream, allowing you to dynamically reinterpret the past.
eventSourcing

Event-sourcing – learning from the past

Event-sourcing is a persistence strategy that appends any data changes to an ever-increasing stream, this way collecting the deltas instead of overwriting the current state. This allows to reinterpret the past, gain insights, identify business opportunities, and create ad-hoc reports – even for unexpected questions you never assumed. Invented around 2005, is has become an essential principle of event-driven architectures. For us, event-sourcing is the perfect foundation for any application you want to query in complex ways.

Append-only

Stack of tasks
By appending to an ever-increasing data stream, event-sourcing is highly optimized for writing and hence pretty fast. Since you never update or delete anything, you get a valuable collection of data over time.

Time-machine

Clock with backwards arrow
Since event-sourcing results in storing all the deltas, you can not only replay the current state, but also any state at any time in the past. This enables you to evaluate your data from an infinite number of perspectives.

Reports

Bar chart
Since the deltas describe intentions semantically, it becomes incredibly easy to create rich ad-hoc reports on the data. You can also gain insights and identify business opportunities. And, you get an audit log for free.

Consulting

How to preserve the flexibility of the domain by using event-sourcing? How to decide which data persistence layer to use? How to integrate event-sourcing with CQRS and domain-driven design? How to write your own event-store? How to avoid corrupted data and ensure GDPR compliance? These and similar questions arise frequently in every event-sourcing project. If you face these questions, too, we are there to help by sharing our experience and giving advise. Let's get in touch!

Consulting impact possibilities

Shaping
visions

Modeling
domains

Evaluating
technologies

Designing
architectures

Building
applications

Ensuring
quality

Applying
operations

Shaping visions

Telescope
When shaping a vision, the majority of your assumptions are a bet on the future. With event-sourcing you keep your flexibility to pivot, and are able to answer questions that are not yet known today.

Evaluating technologies

Signpost
To use event-sourcing you need to select a data persistence layer, either a SQL or NoSQL database, or any other data store. We help to evaluate your requirements, and figure out which data store to use best.

Designing architectures

Compass
When designing the architecture for an event-sourced application it is reasonable to use CQRS as well, as the concepts match each other very well. We are happy to help with best practices and our experience.

Building applications

Excavator
Even if you don't want to build your own custom event-store, it is crucial to understand how it works. Either way, we help to model, define, and handle domain events, and to make replays and snapshots fast.

Ensuring quality

Check list
Versioning events and respecting the GDPR are the most difficult parts of event-sourcing. To avoid corrupted or illegal data, we help you to set up event-sourcing in a reasonable and maintainable way.

Let's get in touch

Speech bubbles
We would like to get to know you, and to learn about your current situation. Together, we can figure out how to empower you, and find answers to your individual visions, ideas, and questions. Let's get in touch!
Want answers to your questions?Let's get in touch!

Workshops

Learn how to preserve the flexibility of domains by using event-sourcing. Become an expert in deciding which data persistence layer to use. Learn how to integrate event-sourcing with CQRS and domain-driven design. Write your own event-store. And finally, avoid corrupted data and ensure GDPR compliance. You can learn all of this in our workshops, which of course are also available tailor-made, suitable to your individual needs – remote or on-site. Let's get in touch!

On demand – remote or on-site

You define place and time

Event-sourcing – theory and practice

In English or German

Learn the basics of event-sourcing and how to apply it in web and cloud applications. In a small group you will experience the theoretical basics as well as the hands-on usage.

This workshop includes

  • Understanding event-sourcing
  • Modeling domain events
  • Replaying state
  • Improving the performance with snapshots
  • Querying the event-store efficiently
  • Avoiding corrupted data
  • Respecting the GDPR
  • And much more…
Susanna Roden
Susanna Roden
Let's get in touch

On demand – remote or on-site

You define place and time

Building a custom event-store

In English or German

Learn how to build an event-store from scratch, and use it in a real-world project. In a small group you will experience the theoretical basics as well as the hands-on usage.

This workshop includes

  • Discovering the event-store landscape
  • Designing an event-store API
  • Using SQL and NoSQL data stores
  • Ensuring the order of events
  • Handling snapshots efficiently
  • Versioning events
  • Querying event-stores efficiently
  • And much more…
Hannes Leutloff
Hannes Leutloff
Let's get in touch

On demand – remote or on-site

You define place and time

Your individual event-sourcing workshop

In English or German

Do you need an individual event-sourcing workshop? In close collaboration with you we setup a tailor-made agenda that addresses what's most important to your individual project requirements.

This workshop includes

  • Tailor-made agenda
  • Balanced mix of theory and hands-on
  • Your place, your time
  • Close collaboration with the speaker
  • Group size according to your wishes
  • Follow-up support from our experts
  • Everything according to your needs
  • And much more…
Sophie van Sky
Sophie van Sky
Let's get in touch

Development

Regardless of the conceptual effort you have already put into a project, sometimes you just don't have the people with the required experience to move things forward. We at the native web do not only have many years of experience with event-sourcing, we also have extensive knowledge about the development and architecture of web and cloud applications in general. Whatever you are looking for, we will be the right development partner for you. Let's get in touch!

Cloud applications

Cloud
We develop cloud applications for the enterprise, based on CQRS and event-sourcing, that support elastic scaling, HA, and failover. In combination with DDD, we are able to implement your domain as precisely as possible.

Open-source

Present
We develop wolkenkit, a CQRS and event-sourcing framework based on Node.js. It supports JavaScript and TypeScript, and is available under an open-source license. Additionally, there are also enterprise add-ons.

Web APIs

Gears
We develop web APIs where we use event-sourcing to capture, store, and analyse user intentions. With a special focus on ad-hoc reporting, we help to gain insights and discover interesting business cases.
Have a project in mind?Let's get in touch!

Your journey to event-sourcing

We believe that having the chance to learn and to evolve every day is a valuable privilege that we are very thankful for. Having a deep desire for knowledge, we take hard problems as welcome challenges, not vice versa. Hence, we would like to empower you by sharing the following resources on event-sourcing.

Let's go

Compass rose
Getting started with event-sourcing means to understand the concept of an append-only data stream first. In addition, learn how to name events semantically, without using the familiar database terminology.

En route

Map with location pointer
To make event-sourcing reliable and performant, read about replaying and snapshots. Get to know CQRS to be able to use projections for efficient queries. Understand the CAP theorem and eventual consistency.

No limits

Mountain with flag on top
Discover the core concepts of domain-driven design, make sure to grasp the idea of aggregates and transactional boundaries. Finally, model a domain of your choice, and implement it using wolkenkit.
Need help on your way?Let's get in touch!