История успеха От junior до middle backend developer за шесть месяцев
Особенно если вы не знакомы с микросервисами, переход на микросервисную архитектуру может только добавить проблем. Если ваше приложение достаточно большое и требует масштабируемости, монолитные решения вам точно не подойдут. Потому выше вы можете выбрать лучший фреймворк под ваши задачи. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности. Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проектировать и писать приложения в духе микросервисной архитектуры. Монолитная архитектура хорошо подходит для небольших простых приложений.

А вот тут как раз жаловались, что остаток −1 не воспроизводится. В таком случае надо ставить на ночь replay событий с заглушкой вместо базы, а утром — смотреть, где сассертило. В идеальном мире, когда все события на запись сохраняются. Да, так как велосипед маленький по сравнению с остальным проектом, то саппорт дешевый и быстрый. А вот добиться от производителя базы саппорт — ну, сами знаете, наверное.
[Cherkasy] [Developer] Middle+ Java/Scala Developer @Titanium Technologies Ukraine
Автор защищает идею «некодящего архитектора». Это самая жопа, когда человек нарисовал архитектуру с дебильными допущениями, и ушел обратно в свой астрал, а смертные девелоперы хватаются за головы потому что «в коде» получается бред. У меня вот фантазии не хватает, как будет выглядеть интерфейс для «SQL» и MUMPS например.
- Проект — это его детище, его деньги, и прежде всего клиент заинтересован в эффективности и прибыльности продукта.
- Несмотря на масштабируемость, удобство изменения отдельных сервисов и отсутствие риска сломать приложение полностью, иногда лучше использовать монолит.
- Как никто не запрещает использовать разные виды коллекций вместо массивов.
- Встречал такие решения, очень даже хорошо работают.
- Если в клуб вступают новые участники, в квартире становится тесно и они вынуждены переезжать в новую квартиру — и так пока участников снова не станет слишком много.
- Под этим я подразумеваю, что все компоненты теперь независимые сервисы – нужно очень аккуратно обрабатывать запросы проходящие между модулями.
Как я понял, n-tier это горизонтальная нарезка, микросервисы — это вертикальные столбики, а SOA — это много кубиков. Сейчас вот почитываю умные книжки (DDD только закончил) чтобы в голове оно все сложилось в систему. Поэтому и лезу не в свою область https://deveducation.com/ — проверить, правильно ли понял, и насколько теория соответствует практике. У микросервисов каждый сервис берет свой кусок домена (разделение по вертикальным границам). Как и монолиты существуют, и микросервисные системы — тоже существуют.
История успеха. От junior до middle backend developer за шесть месяцев
Плохо, когда компания начинает решать микросервисами несуществующие проблемы — не имея большой нагрузки, а возможно и в будущем ее не предвидится даже. Отсюда и выплывает необходимость микросервисов — иначе просто невозможно обеспечить необходимую нагрузку. А дальше уже все это обрастает паттернами и техниками как именно обеспечить те самые консистентность, версионность, микросервисная архитектура как дебажить, как логгировать, как разворачивать аптейды и т.д. Для того, чтобы понять откуда вылезли микросервисы нужно понимать контекст реального мира и проблемы, которые микросервисы решают. В микросервисах если код тормозит на вызове — он тормозит только себя. В монолите этот код затормозит того, кто его синхронно вызвал, и того, кто вызвал того, кто его вызвал.
Если делать по рич, тогда либо у методов должно быть параметром — время на которое нужно значение атрибута,либо репозиторию указывать,чтобы выдал объекты в состоянии на время х. Если мы говорим о товаре — то о покупателе может знать, как и о датах поступления в сервсис. Если мы индивидуальные единицы товара не отслеживаем — то, вероятно, нет смысла нагружать — появляются служебные классы связок покупатель-товар-цена и поставщик-товар-цена-количество.
[Developer] Java developer @Codex Ukraine
Больше никто никак не может остаток изменить. Если в коде есть SQL запросы, часть проекта вряд ли будет эффективно переносить на NoSQL. Если запросы оптимизированы под конкретную базу — могут быть проблемы с другой базой, и искать эти проблемы по всему коду. ORM тоже может быть недостаточно гибкой и недостаточно быстрой.

Критерии для доступности данных — «когда запись завершена» — не имеют прямого ожидания головки диска, и это поведение настраивается. И в итоге написать собственную БД, а даже не адаптер-монстр. А чтобы их выяснить — написать собственный сбор статистики работы, и аналитические средства.
Для кого этот курс
Когда мы вообще создаем язык, для оперирования — данными. И никто не запрещает проектировать в терминах ООП сущности из которых состоят эти сервисы, как и их самих. История ООП как проектирования, так и программирования — это моя персональная история.

Ее сложно поддерживать и она имеет выгоды только для крупных проектов, впрочем существенные. Все сервисы должны быть согласованы между собой, все API документированы и т.д. Обязательно должны создаваться и сопровождаться все архитектурные документы. Если все происходит по принципу — «каждый делает что хочет» в итоге имеем системы где сообщение от одного сервиса к другому идёт через 11 узлов, и естественно не доходит. И в течении трёх месяцев на прод не заходит нужная функциональность, но даже после того как заходит — на проде она ещё и падает.
Микросервисы. Паттерны разработки и рефакторинга
Потом вызывают — архитектора и менеджмент его принудительно заставляет нарисовать архитектуру по тому хаосу что есть. Поэтому rule of thumb при сомнениях «резать или нет» — не резать. Все исходит из нагрузки сервисов и количества пользователей. У всяких гуглов-амазонов эти проблемы возникли еще в2000-х, у компаний поменьше в2010-х. Когда нагрузка превышала возможности любой самой дорогой машины — пришлось делить на несколько машин. А еще есть вопрос доступности и надежности — отсюда реплики и по базам и по сервисам.
А теперь представьте, что у участников клуба нет никаких способов коммуникации, кроме личного общения. Они вынуждены жить в одной квартире, так как у них нет других способов координировать свои действия и не теряться. Если в клуб вступают новые участники, в квартире становится тесно и они вынуждены переезжать в новую квартиру — и так пока участников снова не станет слишком много. Если кто-то из участников клуба затеит ремонт, то читать спокойно не сможет никто и весь клуб закроется до завершения ремонта.