| name | cqrs-pattern |
| description | Implement CQRS pattern for Electron services. Use when creating service methods with Observable queries and ResultAsync commands. |
| allowed-tools | Read, Write, Edit, Grep, Glob |
CQRS Pattern
Core Principle
| Aspect | Query (Read) | Command (Write) |
|---|
| Return Type | Observable<T> | ResultAsync<void, Error> |
| Side Effects | None | Database writes, notifications |
Resources
Quick Reference
interface UserService {
list(): Observable<User[]>;
get(id: string): Observable<User | undefined>;
create(data: CreateUserData): ResultAsync<void, ApplicationError>;
}
Use BehaviorSubject to bridge: commands trigger #notify.next(), queries subscribe to it.