И для описания архитектуры удобно использовать C4 Model. Если бы нарисовали диаграмму компонентов (уровень 2) то не было бы вопросов про то, есть два разных хранилища на чтение и запись или нет.
- Разделяет запросы чтения и изменения с целью повышения быстродействия, отказоустойчивости и оптимизации ресурсов.
Важно разделять не просто запросы, но и хранилища чтения и записи. Они действительно разделялись? Например, таблица для записи и вьюха в той же таблице для чтения. Если да, то что было хранилищем для чтения и что - хранилищем для записи?
Поддерживать микросервисную архитектуру - Уменьшает сложность реализации предметной области физически разделяя поддомены - Позволяет в будущем параллельную и независимую разработку несколькими командами
Поддомены можно разделять и логически в монолите, необязательно границы должны быть физическими. Про несколько команд то же самое, монолит с тем же успехом тоже можно разбить на зоны ответственности. Мне нравятся 4 причины использования микросервисов, которые озвучил Рихтер: 1. Независимое масштабирование 2. Независимый деплой 3. Можно использовать разные языки 4. Можно использовать одну либу разных версий в разных микросервисах
Автоматичекую проверку решений сделать достаточно просто.
Для подготовки задач можно использовать Полигон polygon.codeforces.com, а для проведения соревнований — ЯндексКонтест contest.yandex.ru
Если интересно — пишите, поделюсь опытом.
И для описания архитектуры удобно использовать C4 Model. Если бы нарисовали диаграмму компонентов (уровень 2) то не было бы вопросов про то, есть два разных хранилища на чтение и запись или нет.
Важно разделять не просто запросы, но и хранилища чтения и записи. Они действительно разделялись? Например, таблица для записи и вьюха в той же таблице для чтения. Если да, то что было хранилищем для чтения и что - хранилищем для записи?
Поддомены можно разделять и логически в монолите, необязательно границы должны быть физическими. Про несколько команд то же самое, монолит с тем же успехом тоже можно разбить на зоны ответственности.
Мне нравятся 4 причины использования микросервисов, которые озвучил Рихтер:
1. Независимое масштабирование
2. Независимый деплой
3. Можно использовать разные языки
4. Можно использовать одну либу разных версий в разных микросервисах
Для подготовки задач можно использовать Полигон polygon.codeforces.com, а для проведения соревнований — ЯндексКонтест contest.yandex.ru
Если интересно — пишите, поделюсь опытом.