Evento

RECQ Patterns

Reactive Event Driven Commands and Queries

Three patterns to design Reactive Systems

RECQ · Introduction

What is RECQ?

RECQ (Reactive, Event-Driven Commands and Queries) is a set of principles and architectural, methodological, behavioral, structural patterns aimed at the creation of software with Event-driven Microservices architectures compliant to the Reactive Manifesto and the more recent Reactive Principles.

RECQ · Foundations

Underlying Concepts

Distributed Systems & Microservices

Distributed systems are networks of interconnected computers working toward a common goal — performance, fault tolerance and scalability, at the price of careful coordination. Microservices build applications as small, loosely coupled, independently deployable services communicating through well-defined APIs.

Microservice architecture example
Reactive Manifesto traits

Reactive Manifesto & Reactive Principles

The Reactive Manifesto outlines responsive, resilient, elastic, message-driven systems. The Reactive Principles turn those ideas into practical guidance architects and developers can apply.

RECQ · Building Blocks

State-of-the-art

RECQ composes five proven patterns into one closed, analyzable architecture — hover a pattern to see it.

Domain-Driven Design diagram

RECQ · The Pattern Language

Three patterns, one architecture

Pattern 1 · Structural

RECQ System Pattern

  • Components — self-contained portions of software that implement application logic.
  • Message Gateway — manages communication between components in terms of requests and responses.
  • System State Store — persists system state in the form of event logs.

“A RECQ system is a set of computational units called components that communicate by exchanging messages; state changes are published as events in the System State Store.”

RECQ System Pattern
RECQ Communication Pattern

Pattern 2 · Behavioural

RECQ Communication Pattern

Only three types of communication are allowed:

  • Component ↔ Component — Commands and Queries through the Message Gateway.
  • Component → System State Store — publishing Events.
  • System State Store → Component — consuming ordered Events.

Everything else — direct RPC, shared databases, hidden couplings — is structurally impossible. That prohibition keeps the interaction graph knowable.

Pattern 3 · Component

RECQ Component Pattern

Seven component types cover the whole design space, each with an explicit capability row and a consistency–responsiveness profile (C/c = strong/weak consistency, R/r = strong/weak responsiveness).

The seven RECQ component types
Component recv. C recv. Q listen E send C send Q State Profile
Invoker None —R
Aggregate Instance Cr
Service None cr
Projector Context C—
Projection None —R
Saga Context C—
Observer None —R

RECQ · The Formal Core

Why exactly seven?

The seven components are not an arbitrary list. Characterize a component by the trigger it consumes (external stimulus, Command, Query, or Event) and the state scope it maintains (none, per-instance, or per-context): four well-formedness rules leave exactly seven well-formed cells in that classification — a formally minimal vocabulary.

RECQ is best understood as a rigorous specialization of Richardson’s microservice pattern language — same territory, closed instead of open-ended. The full formal treatment is part of our research line. Read the research →

Do you find Evento Framework and RECQ Architectures interesting?

Evento Framework is FREE and Open Source. You can always support the project by giving a star on GitHub or contributing to the code base.