Поскольку вы идете по пути «сделать все правильно», создавая распределенную сервис-ориентированную систему с загрузкой zeromq, я бы сказал, что вы должны пройти весь путь и поставить сервис перед базой данных.
Что касается производительности, помните предположение Кнута о том, что преждевременная оптимизация является корнем всего зла.Лучше пойти с более чистой опцией, а затем оптимизировать по мере необходимости, если вы заранее не знаете, что у вас будут проблемы с производительностью.Кроме того, абстрагирование базы данных должно позволить вам более легко масштабировать (например, путем распространения, кэширования и т. Д.), Если в будущем возникнет такая необходимость.
При этом, если другой вариант, который вы рассматриваете, является общимlib, и, предполагая, что это также более быстрый вариант реализации, вы всегда можете начать этот путь и изменить его позже - просто измените общий lib для работы со службой, а не напрямую с базой данных, и все ваши службы должны быть в порядке.