Существует два вида бакендов: нативные и внешние. Размещаются эти бакенды в каталогах /usr/lib/alterator/backend2 и /usr/lib/alterator/backend3 соответственно.
Нативные бакенды пишутся только на языке scheme и работают внутри процесса alterator. Написание нативных бакендов требует достаточно большого опыта программирования и большой аккуратности.
Внешний бакенд может быть написан на произвольном языке програмирования, при этом настоятельно рекомендуется использовать готовые библиотеки, предоставляющие API для взаимодействия с alterator. Все библиотеки построены по одному и тому же принципу – есть главный цикл взаимодействующий с alterator и есть функция-обработчик пришедших сообщений.
В функции обработчике:
Пример простейшего бакенда на shell:
В данном примере: message_loop — запуск цикла обработки событий, on_message — обработчик входящих сообщний. Входные переменные выглядят как переменные $in_<имя>. Выходные печатаются при помощи функций write_* . alterator_api_version – текущая версия API для взаимодействия с alterator. Если к к бакенду <name> обращались из интерфейса по адресу /<name>/foo/bar, то переменная $in__objects будет равна «foo/bar» (то есть «хвост» адреса), если обращались по адресу /<name>, то $in__objects будет равна «/».
Пример аналогичного бакенда на perl (см. также здесь):