но close sqlx не принимает контекст, а disconnect монго принимает. Норма ли, если передавать контекст через сервис в реализацию бд, а она не будет его использовать?
И ещё не по теме. Как можно настроить компоуз на запуск разных баз? Я нашел вариант либо с двумя разными файлами, либо с тремя (основной и два для баз)
а как вы транзакционность сделали при разных базах?
Сами данные не связаны и ~дублируются, просто две реализации
по поводу компоуз, с версии 1.28.0 у него появились профили
а передавать контекст handler -> service -> storage конечно. а как еще?
не не, я имею ввиду транзакции на уровне стораджа или на уровне сервиса у вас? если на уровне сервиса, то как сделали одинаковым интерфейс транзакций для разных баз?
Я передаю в них один и тот же импут юзера через хендлер -> сервис -> репозитори, и в каждой реализации уже манипулирую данными в силу особенности базы
я про транзакции. commit там и rollback
А на интерфейс они влияют? Внутри реализации для постгреса обычный старт - дефер коллбек - коммит Для монги, только сейчас озаботился, еще не успел реализовать, что-то такое https://docs.mongodb.com/manual/core/transactions/
In most cases, multi-document transaction incurs a greater performance cost over single document writes, and the availability of multi-document transactions should not be a replacement for effective schema design. For many scenarios, the denormalized data model (embedded documents and arrays) will continue to be optimal for your data and use cases. That is, for many scenarios, modeling your data appropriately will minimize the need for multi-document transactions. оно вам точно надо? может вам не монго нужна?
Ну, оно мне нужно чисто для красоты проекта) Изначально была только sql, уже есть метод с транзакцией, хочется такое же и для монги (а монга сама как антипод постгреса выбрана)
а, ну если оно не для практического применения, то ок просто эти распределенные транзакции по сути превращают кластер монги в тормозное подобие постгри
Обсуждают сегодня