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

lms → storefront

Зачем нужно

LMS предоставляет витрине только публичную проекцию дорожной карты и факты для публичных страниц. Учебные группы, тренажёры, разборы, progress и личные результаты остаются в LMS/Learning Workspace.

На переходном этапе storefront admin может быть source of authoring для публичной дорожной карты и editorial-полей. LMS остаётся source of truth для нормализованной учебной модели, progress и completion.

Стороны

  • источник: lms
  • потребитель: storefront
  • вид: event-driven (обновление read-model) + online read через API

События

messageTypeКогда
lms.roadmap.publishedопубликована новая версия дорожной карты
lms.roadmap.topic_changedизменения темы в опубликованной версии
lms.fact.changedсоздан, опубликован или обновлён публичный учебный факт без PII

Payload lms.roadmap.published

{
"programRef": "string",
"version": "v1.2",
"subjectKey": "string",
"levelKey": "string",
"modules": [
{
"moduleKey": "string",
"title": "i18n",
"topics": [
{
"topicKey": "string",
"title": "i18n",
"shortDescription": "i18n",
"estimatedHours": 8,
"roadmapLayer": "core",
"pathways": [
{
"formatKey": "mini_group",
"productRefs": ["crm:product:..."],
"productRunRefs": ["crm:product_run:..."],
"groupRefs": ["lms:group:..."],
"sessionRefs": ["lms:session:..."],
"trackRef": "track-a",
"availabilityState": "available",
"completionContribution": "evidence_only",
"scheduledState": {
"moduleTitle": "i18n",
"topicTitle": "i18n",
"lessonNo": 2,
"lessonsInModule": 6,
"canJoinNow": true,
"catchupRequired": true
}
}
],
"publicVisible": true
}
]
}
],
"publishedAt": "ISO 8601"
}

Online read API

GET https://api.systematika.tld/api/v2/lms/public/roadmap/{programRef}
GET https://api.systematika.tld/api/v2/lms/public/programs
GET https://api.systematika.tld/api/v2/lms/public/facts

Используются витриной как fallback и в SSR-render.

Поведение storefront

  1. По событиям обновляет storefront_block с roadmap projection и связанные storefront_fact.
  2. SSR-страницы кеширует представления и инвалидирует на событие.
  3. Не читает learning_group, learning_group_participant, training attempts, review sessions или personal progress.
  4. Показывает только записи со статусом public/published и source ref на LMS.
  5. Сохраняет entry_requirements, catchup, CTA copy и SEO copy как editorial projection поверх LMS refs.
  6. Собирает product_trajectory_block из LMS roadmap projection и CRM product/product run data.
  7. Не рассчитывает progress, completion, attendance или private recommendations.

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

  • по programRef + version.

Ошибки

СценарийПоведение
schema-mismatchDLQ, текущий storefront_block/storefront_fact cache сохраняется
topic не публиченпропускается в read-model
payload содержит personal progress или group rosterсобытие отклоняется, DLQ + security alert
storefront authoring не содержит LMS source refsзапись не публикуется как canonical roadmap projection

Retention

  • события 90 дней.

Связанные ADR

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