На самом деле (довольно) сложно создать такую систему. (Я говорю честно, потому что это, конечно, выполнимо).
Если у вас несколько производителей и один потребитель, это легко. Все производители пишут одновременно, а один потребитель читает данные, как только они видны (зафиксированы).
Но если вам нужна масштабируемость с несколькими потребителями, вам необходимо создать схему блокировки, которая не является тривиальной. (Вы должны убедиться, что ни одна строка не будет отправлена двум потребителям. Этого нелегко добиться с помощью транзакций и блокировок базы данных. Наивные решения приводят к сериализации всей доставки сообщений, как если бы у вас был только один потребитель, которого мы не хотим. ).
Я бы предложил использовать встроенное решение. Вы также можете прочитать этот вопрос о похожем вопросе.