Я разрабатываю библиотеку на основе плагинов.Плагины реализуют узлы, которые могут быть подключены в виде специализированного графа фильтров , где сообщения передаются из источников в фильтры в приемники.
Если плагин исходного узла написан с использованием API библиотеки 1.1, который добавляет новые типы сообщений, которых не было в API 1.0, плагин узла-приемника, написанный с использованием API 1.0, не может знать эти типы сообщений.
В этом контексте, это добавление новых типов сообщений в API 1.1,семантическое изменение версионирования, которое фактически потребовало бы, чтобы API был версионирован 2.0?
Плагин узла-приемника 1.0 все еще строится против библиотеки 1.1, и он все еще может обрабатывать типы сообщений, которые существовали в API 1.0 (все, что1.0 плагин узла источника может произвести, например).У этого также есть способ обнаружить, что данное сообщение имеет неподдерживаемый тип, и это может изящно потерпеть неудачу, когда это происходит.Но, тем не менее, это не всегда работает, потому что неизвестные сообщения могут содержать важную информацию, которую нельзя игнорировать.