Начать с рамки: это не демонстрация технологий, а защита архитектурного мышления.
Главная идея простая: рядом с учеником нужна выживаемость, рядом со штатом нужна правда.
Не интриговать. Сначала BLUF, потом доказательства.
Ревьюер должен за первую минуту понять позицию: локальная долговечность и каноническая правда разведены намеренно.
Показать, что структура не декоративная. Каждый следующий блок отвечает на вопрос, который нужен для защиты выбранной архитектуры.
Если смотреть только на throughput, решение получится неверным. Для ученика главный риск - потеря работы.
Для штата - невозможность доказать происхождение оценки. Для оператора - невидимый backlog.
Это рождает local journal и recovery state machine. Не сеть должна быть идеальной, а статусы должны честно отражать архитектурную правду.
Ставки переводят пользовательскую боль в архитектурные требования.
Выбранные ограничения не декоративны: они защищают от провалов доверия.
Нагрузка реальная, но это не глобальная consumer platform.
Главный вопрос: как не потерять, не исказить и не опубликовать раньше времени.
После этого county server и full microservices можно обсуждать спокойно: не по вкусу, а по критериям.
Не выставлять раннюю идею глупой. Она помогла увидеть локальную устойчивость.
Но custody and statewide lineage плохо защищаются, если county node владеет primary truth.
Выбранный вариант не максимизирует все критерии. Он максимизирует defendability:
центр остается правдой, edge не теряет работу, county остается инфраструктурной опцией.
Это контейнерная карта решения. Secure Client - controlled exam surface.
Edge Gateway - first durability boundary. State Core - canonical submissions, score state, audit history and publication state.
Не обещать exactly-once transport. Более надежное утверждение:
transport may be at-least-once, but domain handlers are idempotent.
Это сильное число для защиты. Оно показывает, что локальная выживаемость не требует county-owned source of truth.
Объем реалистичный, поэтому workflow можно сделать строгим.
Ручная оценка - процесс доверия, а не ввод числа.
Это главный ответ на вопрос: если оценка может меняться, почему integrity не теряется.
Меняется current state. История остается append-only.
Finalized score - scoring fact. Published result - approved visibility fact.
Для three-agency governance это принципиально.
Два грейдера могут иметь одну роль, но разные assignments.
Result visibility меняется после publication. Accommodations and testing window - контекст доступа, а не отдельные роли.
Пояснить: сервисы есть, но границы выбраны по ответственности. Решение не доказывает современность количеством deploy units.
Связать с pre-defense gaps: SLO, RTO, RPO and fitness functions закрывают слабые места.
Не обещать магию. Честная защита называет остаточный риск и показывает, что он управляется процедурой.
Это Q&A slide. Не читать все карточки, а показать, что скептические вопросы встроены в решение заранее.
Финальная формулировка: архитектура не самая распределенная и не самая централизованная.
Она ставит ответственность туда, где ее можно защитить.