원클릭으로
event-sourcing-design
이벤트 소싱 + CQRS 패턴 설계 가이드. EventStore, Aggregate, Projection, Saga, Snapshot 구현 시 사용한다.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
이벤트 소싱 + CQRS 패턴 설계 가이드. EventStore, Aggregate, Projection, Saga, Snapshot 구현 시 사용한다.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Raft 합의 알고리즘 설계 및 구현 가이드. 분산 시스템, 합의 프로토콜, 리더 선출, 로그 복제를 구현할 때 사용한다.
리액티브 스프레드시트 엔진 설계 가이드. 셀 수식 파싱, 의존성 그래프(DAG), 증분 재계산, 내장 함수 구현 시 사용한다.
바이트코드 컴파일러 + 스택 VM 설계 가이드. MiniLang을 바이트코드로 컴파일하고 VM에서 실행할 때 사용한다.
Language Server Protocol 서버 구현 가이드. LSP 서버, 증분 파싱, 자동완성, 진단, Go-to-Definition, 호버를 구현할 때 사용한다.
Express.js REST API design and implementation guide. Use when implementing REST API endpoints, creating Express routes, or setting up API project structure with MVC pattern.
Analyze and fix race conditions and concurrency bugs in async code. Use when debugging async bugs, fixing race conditions, resolving concurrency issues, or when shared state is accessed by multiple async operations.
| name | event-sourcing-design |
| description | 이벤트 소싱 + CQRS 패턴 설계 가이드. EventStore, Aggregate, Projection, Saga, Snapshot 구현 시 사용한다. |
class BankAccount extends AggregateRoot {
constructor(id) {
super(id);
this.balance = 0;
this.status = 'active';
}
// 커맨드 메서드: 비즈니스 규칙 검증 → 이벤트 생성
deposit(amount) {
if (amount <= 0) throw new Error('Amount must be positive');
if (this.status === 'frozen') throw new Error('Account is frozen');
this.apply(new MoneyDeposited(this.id, amount, this.balance + amount));
}
// 이벤트 핸들러: 상태 변경만 (부수효과 없음)
onMoneyDeposited(event) {
this.balance = event.balance;
}
}
Write Side (Command) Read Side (Query)
───────────────── ─────────────────
CommandHandler Projection
→ Aggregate.method() → 이벤트 구독
→ EventStore.append() → ReadModel 갱신
→ Query API 제공
TransferSaga:
INITIATED → DEBITED → COMPLETED
↓ (실패)
COMPENSATING → FAILED