Совместно используемая библиотека - это надежный способ, за исключением тех случаев, когда действительно существуют проблемы с сериализацией:
Документы с удаленным доступом Akka :
При использовании удаленного взаимодействия дляактеры, вы должны убедиться, что реквизиты и сообщения, используемые для этих акторов, являются сериализуемыми.Невыполнение этого требования приведет к непредсказуемому поведению системы.
Для получения дополнительной информации см. Сериализация .
В основном вам потребуетсяобеспечить и настроить сериализацию для реквизитов актеров и отправленных сообщений (конечно, включая все вложенные классы).Если я не ошибаюсь, настройки по умолчанию приведут вас к работе без каких-либо настроек на вашей стороне, при условии, что все, что вы отправляете по сети, является java-serializable.
Тем не менее, default config использует сериализацию Java по умолчанию , которая, как известно, весьма неэффективна - поэтому вы можете переключиться на protobuf, Kryo или, возможно, даже JSON.В этом случае имеет смысл предоставить реализацию сериализации и привязки в качестве разделяемой библиотеки - либо выделенной, либо части «общих моделей», которые вы упомянули в вопросе, - зависит от того, хотите ли вы использовать ее в другом месте ивозражайте / не возражайте против повсеместно возникающих переходных зависимостей, связанных с serailization.
Наконец, если вы позволите какое-то личное мнение, я бы сначала предложил попробовать protobuf - это двоичный формат (читай: эффективный) ишироко поддерживается (есть привязки для других языков).Kryo тоже хорошо работает (у меня есть несколько приложений akka-кластера с закрытым исходным кодом с сериализацией kryo в производстве), но есть несколько особенностей, связанных с обработкой коллекции / карты.