Если у вас один и тот же интерфейс определён в 3х местах (блин, это смешно даже писать), то всё таки вы что-то делаете не так.
Натирание фраз аля hexagonal architecture, ddd и какое-то еще буллшит не вылечивают ваш "код".
Я оч жалею, что я в этом сейчас копаюсь. Сейчас я понимаю, что переинтерфейсирование всего в Jave не так уж и плохо, оно даже органично как-то. Но не в Go.
Пост выше правда, как бы там на ХН не ныли.