Одна схема — всё остальное из неё
ATL — это три вещи, построенные из одного источника: язык схем, описывающий сообщения и вызовы, компактный двоичный формат передачи и симметричный конверт «запрос-ответ», в котором спрашивать и отвечать может любая сторона.
- Клиенты и серверы генерируются для Rust, TypeScript, Dart, Go и Python
- Схема — это договор: обе стороны согласны о типах до первого байта
- Вызова, которого нет в схеме, не существует
Команды, а не оболочка
Каждый узел платформы управляется только по ATL внутри TLS 1.3, где обе стороны проверяют ключи друг друга. Ни SSH, ни оболочки нет. Перезагрузка, проверка дисков, установка обновления или чтение состояния системы — типизированные вызовы с типизированными ответами.
Ровно один раз
Каждый запрос, который меняет состояние, несёт порядковый номер и применяется ровно один раз. Если соединение оборвалось и клиент отправил запрос снова, изменение не выполнится дважды — клиент просто получит исходный ответ.
Роли в сертификате
Что клиенту разрешено, записано в его сертификате. Роль наблюдения читает все метрики и ничего не меняет; роль отпирания может только передать ключ диска. Украденный сертификат наблюдения не перезагрузит ничего.
Протокол открыт на уровне схемы и формата передачи: ваши системы могут говорить с платформой на своём языке.