Database

Код компонент Database інкапсулює роботу з базами даних таким чином, що при переході, скажемо, з MongoDB на PostgreSQL необхідно лише міняти код цих компонент.

Приклад:

with database.get_and_update(pk=uid) as obj:
    ...

Database НЕ імплементує бізнес логіки! (Для цього є StateClasses)

Виклики компоненти Database відбуваются тільки з Views!

Serializers, StateClasses не мають робити запити до БД, зробить їх заздалегіть і покладіть в конекст запиту (він для цього існує).

Таким чином робимо більш наглядною роботу з БД, що буже важливо. Наприклад, коли ми працюємо читаємо і пишемо декілька об’єктів в БД треба контролювати атомарність/конкурентність всіх або частини операцій, що просто неможливо коли запити розкидані по всьому коду.

Сховище даних (Store)

TODO

Текст

Колекції даних (Collection)

TODO

Текст

Автоматичні дії при записі в базу

TODO

Оновлення дати модифікації та технічних полів

Індекси для бази даних по яким будується фід оновлень (Indexes)

TODO

Текст

Транзакції (Transactions)

TODO

Текст