Краткий ответ.
В настоящее время (в 2.4.1) он содержит только одно поле, IPROTO_ERROR_STACK (0). Но в будущем к этой карте могут быть добавлены другие поля. Формат MP_MAP с одним ключом выбран для лучшей расширяемости. Все соединители должны иметь возможность анализировать ключ IPROTO_ERROR_STACK и пропускать любой другой ключ. Таким образом, даже если в будущих версиях Tarantool на карту будут добавлены новые поля, старые коннекторы все равно смогут анализировать ответы.
Длинный ответ. протокол (IProto) имеет форму карты MessagePack: MP_MAP. Даже если на этой карте всего 1 или 2 поля, это все равно MP_MAP, а не MP_ARRAY, и, конечно, не просто неформатированный байтовый массив. Некоторые такие ответы существуют уже много лет. Появляется множество коннекторов к Tarantool, которые могут отправлять / получать и анализировать ответы от Tarantool по протоколу IProto. И когда возникает необходимость что-то изменить в этих ответах после всех лет эксплуатации со всеми Созданное программное обеспечение для обработки ответов, MP_MAP приходит на помощь. С помощью MP_MAP можно легко добавлять новые поля в ответ, не нарушая все старые соединители. Предполагая, что они готовы к получению новых неизвестных ключей, они их просто пропускают. Вот почему MP_MAP часто используется в Tarantool как верхний уровень типа ответа. Старый код легко расширить и не сломать. Формат пакета сообщений об ошибке с IPROTO_ERROR_STACK - MP_MAP по той же причине. В будущем к объекту ошибки могут быть добавлены дополнительные ключи.