Posts

Shared Libraries в микросервисах

Проблемы микросервисов:

  • сетевые издержки на коммуникацию между функциями
  • сложности при отладке из-за распределенности системы
  • усложнение архитектуры
  • одинаковые функции в разных микросервисах Про решение первых трех есть немало статей, в том числе и в этом канале они были. Сегодня я делюсь статьей с best practices решения проблем дублирования кода - вынесения его в библиотеки и переиспользование в нескольких независимых сервисах. Читать статью

System Design: сервис типа Google Places

Сегодня очень полезная информация для прохождения секции system design: пример пошагового проектирования системы на подобии Google Places - сервисов, которые основаны на поиске ближайших к вам мест по критериям - рестораны, гостиницы, заправки и т.д. Смотреть видео

TOP-3 сложнейших задач LeetCode

Один из самых частых этапов при подготовке к собеседованиям - это решение алгоритмических задач на Leetcode.

И помимо пользы от решения самих задач, платформа вводит некий соревновательный момент, отображая процент пользователей, которые в принципе решили эти задачи.

Сегодня я делюсь с вами интересным видео, в котором автор взял TOP-3 задачи, по которым меньше всего процент успешных решений и пытается их решить, попутно делясь алгоритмами и подходами к решению.

Смотреть видео

Netflix Timestone: система приоритетных очередей

Статья Netflix про их собственную реализацию очередей с приоритетом, которая имеет высокую пропускную способность при минимальных задержках и покрывает все потребности их платформы.

Статья подробно рассказывает про ключевые концепции системы, охватывает историю её создания и развития, а также архитектуру на которой она построена.

Читать статью

Консистентность данных в распределённых системах

При разработке распределенного приложения, рано или поздно вы столкнетесь с проблемой, когда разным частям вашей системе потребуется согласованность данных друг с другом.

Но как быть, если у вас нет архитектуры распределенных транзакций?

Ответить на этот вопрос на примере одного из кейсов, где возникает подобная проблема, попробует автор видео.

Смотреть видео

Транзакции в микросервисной архитектуре

Еще одна проблема в микросервисной архитектуре после перехода с монолита - это транзакции.

Теперь, вместо единой точки исполнения бизнес-логики, у вас несколько коммуницирующих между собой сервисов, каждый их которых исполняют свою роль в рамках одного сценария. И в любом из них может что-то пойти не так - от недоступности сервиса, до реальной ошибки бизнес-логики.

Для микросервисной архитектуры есть подход распределенных транзакций, но он не лишен изъянов.

Сегодняшняя статья расскажет в том числе про такие изъяны, а также предложит новый вариант решения проблемы транзакций в распределенной системе.

5 подводных камней event-driven архитектуры

Неделю назад я делился с вами статьей про реализацию событий-ориентированной архитектуры, а сегодня хочу поделиться статьей про пятерку подводных камней данного подхода и советы по их избеганию или решению.

Читать статью

Коммуникация между микросервисами

Одна из основных проблем микросервисов - это проблема их коммуникации.

Если вы выберете неверную стратегию, то велика вероятность вместо микросервисной архитектуры получить распределённый монолит.

В сегодняшней статье приводятся основные виды коммуникации между микросервисами, их плюсы и минусы.

Читать статью

Event-Driven Architecture

Обзорная статья про построение событийно-ориентированной архитектуры.

Разбор компонентов, преимущества и недостатки, а также пошаговый разбор перехода от синхронного взаимодействия к асинхронному.

Читать статью

gRPC и REST в одном сервисе

Статья про то, как можно быстро, при помощи фреймворка go-zero, сделать ваши gRPC-хэндлеры переиспользуемыми для REST-протокола без необходимости дублирования кода, при помощи декларативного описания и кодогенерации.

Читать статью