Как бинарная совместимость распространяется akka
В то время как у akka есть документация, касающаяся бинарной совместимости для замены в jar, я не могу найти ничего относительно бинарной совместимости протокола.
На базовом уровне актерский API - это почтовый ящик сообщений. Поэтому, пока сообщения остаются бинарно-совместимыми, есть все возможности, что сообщения могут быть отправлены в другие системы, работающие с другими (несовместимыми с jar) версиями akka.
Итак, учитывая:
- 2 приложения с фиксированным набором сообщений
- Нет типизированных актеров (только с использованием
actor ! message
а такжеactor ? message
) - "Приложение 1" с использованием Акка 2.3.9
Какую самую раннюю версию Акки "Приложение 2" можно было использовать?
Другие предметы, которые я хотел бы подтвердить:
- Протокол кластеризации Akka здесь не имеет значения - каждое приложение может иметь свой собственный кластер и обмениваться данными между кластерами с помощью удаленного взаимодействия TCP
- Бинарная совместимость с Scala также не имеет значения - системы обмениваются данными по протоколу TCP с предварительно скомпилированным набором сообщений (вполне возможно, указанным в Java для уверенности / паранойи)
Для начала, серия 2.0 имеет ту же конфигурацию удаленного взаимодействия, но есть ли причина, по которой 1.3 не может работать?
1 ответ
До этого момента мы не принимали мер, обеспечивающих совместимость протоколов между версиями Akka - это также означает незначительные обновления версий. Мы, однако, не внесли необоснованных изменений, и на уровне протокола Akka с чистым удаленным взаимодействием шансы должны быть хорошими, так как он работает во всех версиях, начиная с 2.2.0. До этого были изменения в протоколе удаленного взаимодействия, которые, вероятно, нарушат совместимость, и Akka 1.x был совершенно другим вопросом.
Мы знаем, что этот ответ не удовлетворяет, и мы будем работать над этим, полностью указав удаленный протокол и выполнив кросс-версия тестов, но у нас еще не было ресурсов для решения этой большой задачи.