0Pricing
SaaS Architecture & Startup Engineering · Lekcja

Event Storming dla mikrousług

Wykorzystuj Event Storming jako technikę współpracy służącą do odkrywania zdarzeń domenowych i modelowania złożonych procesów biznesowych dla SaaS.

Event Storming dla mikrousług to bezpłatna lekcja SaaS Architecture & Startup Engineering na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej SaaS Architecture & Startup Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs SaaS Architecture & Startup Engineering zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

What is Event Storming?

Event Storming is a fun, collaborative workshop technique to understand complex business domains. It helps teams visualize how things happen in a system.

Imagine a room full of sticky notes! Teams map out a business process by focusing on the "events" that occur, making it easier to see the big picture.

Why Event Storm for Microservices?

For SaaS, especially with microservices, understanding domain boundaries is key. Event Storming helps:

  • Break down monoliths: Clearly identifies areas to split.
  • Define service boundaries: Groups related events and actions into potential services.
  • Improve communication: Gets everyone on the same page, from business to tech.

The Event Storming Canvas

Event Storming uses different colored sticky notes to represent various elements of your domain:

  • Orange: Domain Events (what happened?)
  • Blue: Commands (what triggers an event?)
  • Yellow: Aggregates (who performs a command?)
  • Green: Read Models (how users view data?)
  • Purple: Policies (rules reacting to events)

Step 1: Discovering Domain Events

This is the starting point! Think about "what happened?" in your business process. Events are facts from the past, always written in past tense.

Examples:

  • OrderPlaced
  • PaymentReceived
  • UserRegistered
  • SubscriptionCancelled

These are the core truths of your system.

Coding a Simple Event

While Event Storming is visual, the events we discover often translate into code. Here's how a simple OrderPlaced event might look in a Java application:

Try running this example to see how an event could be represented and "published" (here, just printed).

public class OrderPlacedEvent {
  private String orderId;
  private double amount;
  private String customerId;

  public OrderPlacedEvent(String orderId, double amount, String customerId) {
    this.orderId = orderId;
    this.amount = amount;
    this.customerId = customerId;
  }

  public String toString() {
    return "OrderPlacedEvent {id='" + orderId + "', amount=" + amount + ", customerId='" + customerId + "'}";
  }

  public static void main(String[] args) {
    OrderPlacedEvent event = new OrderPlacedEvent("ORD123", 99.99, "CUST456");
    System.out.println("New event generated: " + event.toString());
  }
}

Step 2: Identifying Commands

After events, we look for commands. A command is an explicit request to do something, which usually leads to an event (or multiple events).

Ask: "What action caused this event to happen?" Commands are usually imperative verbs.

  • PlaceOrder (leads to OrderPlaced)
  • ProcessPayment (leads to PaymentReceived)
  • RegisterUser (leads to UserRegistered)

Step 3: Pinpointing Aggregates

Aggregates are the "who" or "what" that receives a command and produces an event. They are transactional consistency boundaries – meaning everything within an aggregate changes together.

Think of them as the "model" or "entity" in your code that holds state and enforces business rules.

  • Order aggregate handles PlaceOrder.
  • PaymentProcessor handles ProcessPayment.

Step 4: Read Models & Policies

Read Models (Green): These are how users or other systems query information. They are optimized for reading, often denormalized views built from events.

Policies (Purple): These are business rules that react to events. For example, "when an OrderPlaced event occurs, then send a confirmation email."

From Storm to Bounded Contexts

As you map out your domain, you'll see natural clusters of events, commands, and aggregates. These clusters often define your Bounded Contexts.

A Bounded Context is a logical boundary within which a specific domain model is defined and applicable. This is crucial for designing independent microservices!

Benefits Beyond Design

Event Storming doesn't just help with technical design; it fosters a shared understanding across the entire team.

  • Shared Language: Everyone uses the same terms.
  • Knowledge Transfer: New team members quickly grasp complex flows.
  • Problem Identification: Uncovers hidden assumptions and issues early.

Quick Check

Event Storming uses different colored sticky notes to represent various domain elements. Match the sticky note color to its correct description.

Recap: Event Storming Toolkit

You've learned that Event Storming is a powerful, visual technique to understand complex domains. By focusing on Domain Events, you can identify Commands, Aggregates, Read Models, and Policies.

This collaborative approach helps in defining clear Bounded Contexts, making it an invaluable tool for designing robust and scalable microservices in your SaaS architecture.

Często zadawane pytania

Czy lekcja „Event Storming dla mikrousług” jest bezpłatna?

Tak — pełny tekst „Event Storming dla mikrousług” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu SaaS Architecture & Startup Engineering, przejdź na CoddyKit PRO. Kurs SaaS Architecture & Startup Engineering zawiera 4 lekcji w sumie.

Co nauczysz się w „Event Storming dla mikrousług”?

Wykorzystuj Event Storming jako technikę współpracy służącą do odkrywania zdarzeń domenowych i modelowania złożonych procesów biznesowych dla SaaS. Ćwiczysz SaaS Architecture & Startup Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć SaaS Architecture & Startup Engineering?

Nie wymagamy żadnego doświadczenia. SaaS Architecture & Startup Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Event Storming dla mikrousług”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji SaaS Architecture & Startup Engineering?

Tak. Każda lekcja SaaS Architecture & Startup Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Bounded Contexts i agregaty
  2. Event Storming dla mikrousług
  3. Projektowanie strategiczne i mapowanie kontekstów
  4. Wszechobecny język i model domeny
← Powrót do SaaS Architecture & Startup Engineering