Загрузка данных


А. Почему это проблема для нас
Б. Какие варианты решения проблемы есть (Может можно поправить на уровне пайпов)
С. Почему выбираем именно такой то такой то вариант

0. Подготовка/аргументация по проблемам или потребностям

1. Understanding the Goals
Переход на микросервисы должен решать какую-то проблему
1.1. Независимая выкатка (Решение всплесков ошибок при выкатке монолита)
1.1.1 Какие участки кода чаще всего меняем? Какой модуль? Какие места чаще приводят к необходимости выкатке что аффектит пользователей - здесь имеем финансовое обоснование необходимости.
Чего добавиваемся? Возможность более частых выкаток наиболее популярных участков за счёт изолированного деплоя без аффекта на монолит
1.2 Ускорение выкатки (Частая выкатка фич отдельной логики когда это требуется)
1.2.1 Какой или какие участки часто используются, и задействованны в разных экземплярах распределенного монолита?
Чего добиваемся? Ускорение выкотки монолита за счёт изолированного деплоя часто используемых участков
1.3 Независимая разработка
1.3.1 Разработка без необходимости изменять логику работу в нескольких местах, достаточо соблюдений контрактов, спецификации API
1.3.2 Возможность использования разных ЯП, идиом и их особенностей
1.3.3 Возможность использования технологически разных DBMS и их особенностей, а также изолированное и распределённое хранение данных


2. С чего начать? Какую стратегию выбрать?
Нужно определиться что будет эффективно, ценно и реализуемо (не приведёт к долго-играющей задаче)
Нужна скорость результата и максимальная решаемость тех или иных проблем/потребностей


3. Какие проблемы ждут
Трудозатраты, инвестиции, риски в ходе разработки, приоритезация перехода над новыми фичами
Может занять какое-то время прежде чем выгода/результаты будут видны
Спустя несколько лет начнут задаваться вопросом а почему этот процесс был запущен

4. Что нужно
Доказать за максимально короткий период что это работает


=== ПОДУМОТЬ ===
1. Как мне измерить производительность базы данных? Мы понимаем что бывают долгие запросы, можно было бы сделать топ список по участкам дающим самую большую нагрузку на БД
2. Выявлять проблемные места и сервисы работающие с БД на основе тикетов RCIA?
3. SELECT, INSERT, BEGIN COMMIT измерять производительность и задержку БД в зависимости от наплыва по типам операций. Транзакции распиливать лучше в последнюю очередь