Recording an event on every state change (roll, assignment, winner decision) gives tests something richer than the final return value to assert on, and gives operators an audit trail for debugging production. Event sourcing provides this for free. Use it especially in important or legacy code paths — but avoid logging in every domain operation (hurts readability) and pick a cost-appropriate sink (database or metric, not always full log ingestion).