לדלג לתוכן

3.4 CQRS ו Event Sourcing תרגול

CQRS

תרגיל 1

בנו CQRS בסיסי עבור ניהול פרויקטים ב-TaskFlow.

Command side:
- CreateProjectCommand(name, owner_id)
- ArchiveProjectCommand(project_id, owner_id)

Query side:
- GetProjectQuery(project_id) - מחזיר פרטי פרויקט
- GetActiveProjectsQuery(owner_id) - מחזיר פרויקטים פעילים של משתמש
- GetProjectStatsQuery(project_id) - מחזיר מספר משימות בכל סטטוס

השתמשו ב-InMemory storage לשני הצדדים.

Event Sourcing

תרגיל 2

הוסיפו Event Sourcing לניהול תגובות של משתמשים:

אירועים:
- CommentAdded(task_id, comment_id, user_id, text)
- CommentEdited(task_id, comment_id, new_text)
- CommentDeleted(task_id, comment_id)

כתבו CommentHistory שמקבל task_id ומחזיר:
- רשימת כל התגובות הנוכחיות (לאחר מחיקות ועריכות)
- רשימת כל הגרסאות של תגובה מסוימת (audit trail)