the native web
CQRS
Concepts
CQRS is a design pattern for distributed web and cloud architecture that enables you to build highly scalable applications.
cqrs

CQRS – the large-scale architecture

CQRS is a design pattern that strictly segregates reading from and writing to an application. This allows you to optimize and scale both sides individually. Invented in 2010, it has become one of the most important design patterns for designing distributed architectures, and it is used as the base for various large-scale web and cloud applications today. For us, CQRS is the first choice when it comes to selecting an architecture for any application that needs to scale.

Segregation

Cloud with downward and upwards arrow
CQRS segregates an application into a read and a write API. As a result, the APIs have distinct responsibilities and can be handled individually, including optimizing, versioning, updating, and scaling them.

Distributed

Graph with spread out nodes
By segregating reading and writing, you have a distributed architecture from day one. This lets you deploy components to dedicated machines, which improves the availability as well as the performance.

Scalable

Bar chart with growing bars and upwards arrow
Since applications built on CQRS are distributed by default, their individual components are typically designed to scale. This allows you to provide high availability and fail-over right from the start.

Consulting

How to shape an idea for a web or cloud application with CQRS in mind? How to decide whether the segregation of reading from and writing to your application is reasonable? How to design in the light of eventual consistency? How to implement commands, domain events, and queries? How to run and monitor CQRS-based applications? These and similar questions arise frequently in every CQRS 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
Shaping a vision is not only a question of solid domain expertise, but also of technological boundaries. If you aim for scalable web or cloud applications, CQRS could be your premier choice for an architectural pattern.

Evaluating technologies

Signpost
The segregation of reading from and writing to your application is feasible for some scenarios, but not for all. We help our customers to evaluate if CQRS is a good choice for their use cases and projects.

Designing architectures

Compass
Designing with CQRS provides many advantages, but also brings along its very own challenges. We help our customers to design high-available solutions with respect to eventual consistency.

Building applications

Excavator
Implementing CQRS the right way is hard. With many years of experience in building CQRS-based web and cloud applications, we love to share our knowledge. This way we help to avoid common mistakes and pitfalls.

Applying operations

Computer with gears
Running CQRS-based applications has its own specific requirements, as you have to manage a distributed system right from the start. Hence we help our customers to apply highly efficient and sustainable operations.

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 shape an idea for a web or cloud application with CQRS in mind. Become an expert in deciding whether the segregation of reading from and writing to your application is reasonable. Learn how to design in the light of eventual consistency. Implement commands, domain events, and queries. And finally, run and monitor CQRS-based applications. 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

An advanced introduction to CQRS

In English or German

Learn how to evaluate CQRS and how to use it to design scalable 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 CQRS and CQS
  • Designing APIs for reading and writing
  • Using projections for synchronization
  • Handling eventual consistency
  • Linking CQRS to event-sourcing
  • Scaling applications
  • Implementing CQRS
  • And much more…
Susanna Roden
Susanna Roden
Let's get in touch

On demand – remote or on-site

You define place and time

Implementing CQRS – theory and practice

In English or German

Learn the core concepts of CQRS and how to implement them from scratch. In a small group you will experience the theoretical basics as well as the hands-on usage.

This workshop includes

  • Setting up APIs for reading and writing
  • Handling commands and domain events
  • Implementing projections and queries
  • Reasoning about network protocols
  • Using databases and message queues
  • Testing a CQRS project
  • Scaling the individual components
  • And much more…
Golo Roden
Golo Roden
Let's get in touch

On demand – remote or on-site

You define place and time

Your individual CQRS workshop

In English or German

Do you need an individual CQRS 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 CQRS, 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!

Web APIs

Gears
We develop CQRS-based web APIs that provide JSON-based services over HTTPS and web sockets. They are protected by authentication and authorization. Also, streaming and versioning are core features.

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.

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.
Have a project in mind?Let's get in touch!

Your journey to CQRS

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 CQRS.

Let's go

Compass rose
When getting started with CQRS, first learn about commands and domain events. Then, read about projections and queries. Learn how to segregate reading from and writing to your application properly.

En route

Map with location pointer
Once you are somewhat familiar with CQRS, learn about the CAP theorem and eventual consistency. Get to know event-sourcing as a way to manage state and to learn from your past by travelling back in time.

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!