마이크로서비스를 위한 이벤트 스토밍
협업 기법인 이벤트 스토밍을 활용하여 도메인 이벤트를 발견하고 SaaS의 복잡한 비즈니스 프로세스를 모델링하세요.
마이크로서비스를 위한 이벤트 스토밍은(는) CoddyKit의 무료 SaaS Architecture & Startup Engineering 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 SaaS Architecture & Startup Engineering 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. SaaS Architecture & Startup Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
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:
OrderPlacedPaymentReceivedUserRegisteredSubscriptionCancelled
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 toOrderPlaced)ProcessPayment(leads toPaymentReceived)RegisterUser(leads toUserRegistered)
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.
Orderaggregate handlesPlaceOrder.PaymentProcessorhandlesProcessPayment.
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.
AI 튜터와 함께 SaaS Architecture & Startup Engineering을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 12
- 레슨
- 48
자주 묻는 질문
“마이크로서비스를 위한 이벤트 스토밍” 강의는 무료인가요?
네 — “마이크로서비스를 위한 이벤트 스토밍” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 SaaS Architecture & Startup Engineering 강의 전체를 잠금 해제할 수 있습니다. SaaS Architecture & Startup Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.
“마이크로서비스를 위한 이벤트 스토밍”에서 뭘 배우나요?
협업 기법인 이벤트 스토밍을 활용하여 도메인 이벤트를 발견하고 SaaS의 복잡한 비즈니스 프로세스를 모델링하세요. 브라우저에서 직접 실행하는 실습 코드로 SaaS Architecture & Startup Engineering을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
SaaS Architecture & Startup Engineering을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 SaaS Architecture & Startup Engineering은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“마이크로서비스를 위한 이벤트 스토밍” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 SaaS Architecture & Startup Engineering 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 SaaS Architecture & Startup Engineering 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 바운디드 컨텍스트 및 애그리게이트
- 마이크로서비스를 위한 이벤트 스토밍
- 전략적 설계 및 컨텍스트 매핑
- 보편 언어와 도메인 모델