rdkafka и boost msm захотелось мне стейт машину. Для себя определил набор состояний Created (просто старт, коннект еще не установлен и сам объект rdkafka не создан), Connected, Disconnected, Subscribed, Unsubscribed. Не получается в голове уложить как идеоматично и правильно переходить между состояниями, например из Created дальше - коннект может произойти, а может и нет. Т.е. будет ли ок в транзишене попытаться сделать коннект и в случае успеха/неуспеха тригернуть событие дальнейшего перехода? Спасибо.
После Created очевидно должно быть WaitConnection.
Спасибо большое за ответ! Был бы это сервер - да, но так это клиент. И вопрос не про набор состояний, а про переходы между ними. Ок ли решать каким будет следующее состояние в action или это шиза - вот в чем вопрос.
Я вам сделаю ещё более грустно. В kafka даже наличие соединения с каким либо из брокеров это ещё не конечный state ни для pub ни для sub. И pub/sub не привязаны к конкретным коннектам. Они привязаны к топикам. И даже для топика сказать активен он или нет эт тоже проблема. Потому что каждый топик разделён на партиции. И какие то из них могут быть активны, связаны с лидером, а какие то нет.
Обсуждают сегодня