Watermill поддерживает SQLite Pub/Sub — сообщения передаются между publisher и subscriber через таблицы SQLite.
Что это даёт:
— не нужен Kafka, RabbitMQ или Redis;
— сообщения хранятся в SQLite-файле;
— данные переживают перезапуск приложения;
— удобно для небольших сервисов и локальной разработки.
🔴 Публикация:
publisher, err := wmsqlitemodernc.NewPublisher(
db,
wmsqlitemodernc.PublisherOptions{
InitializeSchema: true,
Logger: logger,
},
)
msg := message.NewMessage(
watermill.NewUUID(),
[]byte(`{"message":"Hello, world!"}`),
)
err = publisher.Publish("messages", msg)
Подключается как обычный Pub/Sub Watermill — при этом отдельный брокер не требуется.
⚠️ SQLite Pub/Sub всё ещё Beta: реализация стабильна, но недостаточно проверена в production. Для высоких нагрузок учитывайте ограничения SQLite.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика