Deferrable-операторы (Deferrable operators)
Deferrable-оператор откладывает выполнение задачи. Классический сенсор занимает слот воркера на всё время ожидания; deferrable-оператор освобождает воркер до срабатывания триггера.



Вместо того чтобы занимать воркер в ожидании (например, сенсор), задача передаёт управление триггеру (асинхронная функция в компоненте Triggerer). Когда условие выполняется, триггер отправляет событие, задача снова ставится в очередь и выполняется. Так экономятся ресурсы воркера и повышается масштабируемость.
Триггер наследуется от BaseTrigger, реализует метод run() (async generator, yield TriggerEvent при готовности). Оператор наследует BaseOperator и использует метод defer() с указанием триггера и даты/метаданных. Вместо классического сенсора с poke_interval используется deferrable-версия (например, TimeSensorAsync, провайдерские сенсоры с суффиксом Async).
Плюсы: меньше занятых слотов воркера, быстрее реакция при большом числе сенсоров. Требуется запущенный Triggerer. Многие сенсоры из провайдеров имеют deferrable-варианты; можно реализовать свой триггер и оператор.
Подробнее: Deferrable operators, Triggerer.