Перейти к основному содержимому

competitions → management

Зачем нужно

Management получает результаты олимпиад и факты участия для аналитики, целей и dashboards. Эта интеграция не передаёт канонический список учеников или учебные группы: такие списки живут в LMS/Learning Workspace.

Стороны

  • источник: competitions
  • потребитель: management
  • вид: event-driven + sync snapshot

События

messageTypeКогда
competitions.registration.createdновая регистрация
competitions.participant.joinedучастник принят
competitions.submission.receivedполучен submission
competitions.result.publishedопубликован результат
competitions.award.issuedвыдан наградной документ
competitions.season.closedсезон закрыт

Online read

GET /api/v2/competitions/events/{eventRef}/results
GET /api/v2/competitions/participants/{userId}/history

Поведение management

  • агрегаты по олимпиадам в dashboards;
  • результаты учитываются как goal_evidence для целей goal_subject;
  • learning recommendations могут опираться на результаты участия, но назначение тренажёра/разбора выполняется через LMS/Learning Workspace;
  • management не создаёт competition_group и не использует его как список «мои ученики».

Идемпотентность

  • по messageId;
  • результаты — по competition_result_id + messageVersion.

Ошибки

СценарийПоведение
result без participant/user mappingсохранить как anonymous competition evidence, не создавать goal evidence
result с group-only mapping без Learning Workspace/user refсохранить только aggregate competition evidence
season неизвестен managementDLQ + alert для синхронизации reference
повторная публикация результатаобновить projection по competition_result_id

Scopes

ScopeДля чего
service:competitions.results.readчитать published/personal result snapshots
service:competitions.participants.readчитать history участника

Связанные ADR

Retention

  • события 5 лет (история участия);
  • агрегаты — постоянно.

Связанные документы