Naming Conventions
| Artifact | Convention | Pattern | Example |
|---|---|---|---|
| App name | snake_case | ^[a-z][a-z0-9_]*$ | concert_app |
| Entity type (state key) | snake_case | ^[a-z][a-z0-9_]*$ | user, artist |
| Stream name | auto-derived | <state>_stream | user_stream |
| Event type | SCREAMING_SNAKE_CASE | ^[A-Z][A-Z0-9_]*$ | ARTIST_FOLLOWED |
| Action name | SCREAMING_SNAKE_CASE | ^[A-Z][A-Z0-9_]*$ | FOLLOW_ARTIST |
| Rejection code | SCREAMING_SNAKE_CASE | — | TICKET_LIMIT_EXCEEDED |
| Projection name | snake_case | ^[a-z][a-z0-9_]*$ | user_concert_stats |
| Query name | snake_case | ^[a-z][a-z0-9_]*$ | my_concert_history |
| Relationship name | snake_case | ^[a-z][a-z0-9_]*$ | artist_followers |
| Rule name | snake_case | — | reject_duplicate_checkin |
| Field path (ops) | slash notation | /inventory/gold | /shows_attended |
| Field path (expressions) | dot notation | entity.inventory.gold | entity.shows_attended |
| Scratch space | _tmp/ prefix | — | _tmp/pending_saga |
| Iterator (find/filter/remove) | it | — | it.product_id == event.id |
| Iterator (emit_each/for_each) | item | — | item.quantity |