Очень много вопросов к Go коду, но это уже зависит от команды и выработанного стиля.
Самая главная проблема, которая возникнет с такой реализацией — очередь через PostgreSQL с помощью NOTIFY/LISTEN.
Дело в том, что даже в 12ой версии pg нет возможности создания групп консьюмеров, либо хотя бы метода подтверждения получения сообщения. В микро-сервисной архитектуре при, к примеру, 10 инстансах сервиса — 10 одинаковых сообщений.
Также, проблема проявится с реализацией failover'а, так как данная очередь ничего не сохранит в себе при падении сервера. Проще говоря, можно потерять все сообщения и получить отсутствие консистенции данных.
Самая главная проблема, которая возникнет с такой реализацией — очередь через PostgreSQL с помощью NOTIFY/LISTEN.
Дело в том, что даже в 12ой версии pg нет возможности создания групп консьюмеров, либо хотя бы метода подтверждения получения сообщения. В микро-сервисной архитектуре при, к примеру, 10 инстансах сервиса — 10 одинаковых сообщений.
Также, проблема проявится с реализацией failover'а, так как данная очередь ничего не сохранит в себе при падении сервера. Проще говоря, можно потерять все сообщения и получить отсутствие консистенции данных.