2021-04-02 21:47:08
Сегодня EVA ICS получила новый движок событий, уже даже в стабильном билде.
Вообще события в среднемировом IoT, как домашнем, так и промышленном, традиционно в жопе, поэтому его и не любят ставить на эти наши заводы и электростанции старые мастеровые инженеры. Ведь типичный IoT выглядит так:
Уровень 1. Давайте слать метрики с устройств push'ем вебсокетом или mqtt (гусары, молчать про retain) через какой-то интервал, а клиент подсоединится и подождет (куда ему спешить-то)
== большинство находятся здесь и не парятся ==
Бонус-уровень 1A (например Amazon): Давайте менять пакеты местами как нам вздумается, а юзера пусть ебутся как хотят
Уровень 2. Давайте слать push'ы, но разрешим клиентам делать pull при подключении
Уровень 3. Ой, а пока мы разбирали pull, пришел push и мы не знаем какое теперь событие свежее. Давайте вхерачим в события timestamp (генерить и хранить инкрементальное ID события - дорого, а часто хранить и негде).
Уровень 4. Оказывается время может идти назад. Это незаметно, если управлять выключателем в туалете, но за управление турбиной уже могут выебать. Привязываем событие к monotonic timer и включаем еще какой-нибудь инкрементальный boot ID
== мы как раз находимся здесь ==
Уровень "бог". Хранить небольшую локальную историю событий и разрешить клиенту запрашивать те, которые он пропустил. Это не влияет на мониторинг и управление, но архиполезно например для работы с mission-critical статистикой.
== это реализуем через годик, к счастью основные конкуренты сидят где-то на уровне 1. и ведь не парятся! потому что главное всё равно - хорошие продажники, а не эти ваши чертовы алгоритмы ==
626 views18:47