39 خطوط
1.9 KiB
Markdown
39 خطوط
1.9 KiB
Markdown
# Event Taxonomy
|
|
|
|
Events use dot-separated past-tense names and versioned payload schemas. Every tenant event includes organization context set by the server, actor context where relevant, occurred time, correlation ID, and causation ID.
|
|
|
|
## Authoring
|
|
|
|
- `course.draft_created`
|
|
- `course.version_published`
|
|
- `taxonomy.mapping_created`
|
|
- `taxonomy.mapping_confirmed`
|
|
|
|
## Learning
|
|
|
|
- `course.opened`
|
|
- `course.completed`
|
|
- `lesson.started`
|
|
- `lesson.progressed`
|
|
- `lesson.completed`
|
|
- `block.viewed`, `block.interacted`, and `block.completed`
|
|
- `video.started`, `video.progressed` (25/50/75 milestone), and `video.completed`
|
|
- `video.replayed`, `video.skipped`, and `video.exited`
|
|
- `assessment.started` and `assessment.completed`
|
|
- `question.answered`
|
|
- `comment.created`, `bookmark.created`, and `note.created`
|
|
|
|
The ingestion allow-list is `EventTaxonomy::learning()` and its current schema version is `1`. The server owns organization and learner identity. Clients may supply only a stable event UUID, assignment/content identifiers, occurred time, optional session/correlation/causation identifiers, a bounded payload, and allow-listed device context (`platform`, `formFactor`, `online`, `appVersion`). Video telemetry reports media position/duration and discrete milestones; it never sends a derived learner score.
|
|
|
|
## Intelligence
|
|
|
|
- `assessment.evidence_created`
|
|
- `skill.evidence_recorded`
|
|
- `capability.recalculation_requested`
|
|
- `capability.score_updated`
|
|
- `capability.snapshot_created`
|
|
- `coverage.metric_updated`
|
|
- `skill_gap.detected`
|
|
|
|
Raw events carry stable IDs, not copied taxonomy trees, and are immutable after ingestion. Consumers claim an event using `(learning_event_id, processor, processor_version)`, so retries and late/offline delivery cannot duplicate projections. Derived daily metrics, risks, insights, and attention records stay in separate tables and can be rebuilt from raw events.
|