Найти в Дзене
Оптимистичная архитектура: дал слово — держи!
Сегодня будет сказ про оптимистичную архитектуру. В нём можно разглядеть себя или своих знакомых. Основано на реальных событиях, но все совпадения случайны! Однажды перед разработчиками встала задача — разработать микроядро для хранения документов клиента. Функциональность подразумевала создание CRUD-сервиса и сервиса поиска. Поиск должен был предоставлять возможность находить документы выбранного клиента по произвольному фильтру, который строился на основе атрибутов документа. Архитекторы решили не ограничивать API поиска, предоставив будущему пользователю абсолютную свободу действий...
2 месяца назад
Моделирование данных: базовые критерии при проектировании
На что в первую очередь следует обратить внимание, проектируя модель данных? Вопрос провокационный и не имеет единственно верного ответа. Между тем, предлагаю рассмотреть такие свойства, как структура, переиспользование и производительность. Моделирование данных должно начинаться с выстраивания общей системы. К счастью, это интуитивное правило, ведь человеческий мозг любит всё упорядочивать. Сталкиваясь с неизвестным, с новой предметной областью, проектом, задачей, мы в первую очередь думаем о структуре...
3 месяца назад
Интеграция и внешние идентификаторы
Необходимость интеграции с внешней системой — для многих это уже рутина, будни распределённых систем. Мы интегрируем сервисы/микросервисы, разные домены, встраиваем чужие решения в свои или наоборот. Однако что может пойти не так в давно работающей интеграции? Сначала сформулирую капитанские тезисы, а потом перейду к истории из реальной практики. *** Имеется давно работающая интеграция между двумя системами. Первая — внешняя — отвечает за идентификацию человека по его персональной информации и присваивает ему уникальный идентификатор (назовём его PersonID)...
3 месяца назад
Snowflake ID: генерация целочисленного идентификатора в распределённой системе
Доказано, что каждая снежинка имеет уникальную структуру. Разработчики Twitter вдохновились этим феноменом и изобрели Snowflake ID — целочисленный глобально-уникальный идентификатор. Проблематика хорошо описана в моём предыдущем посте про Lamport Timestamp, поэтому здесь сразу перейдём к основной части. Структура 64-битного идентификатора (от старшего бита к младшему): В зависимости от потребностей размерность полей может варьироваться. Например, если требуется более длительное хранение данных (более 69 лет), можно увеличить размерность поля Timestamp...
3 месяца назад
Как еще определять границы микросервисов
На нижеследующие мысли меня навела статья с говорящим названием "Microservices antipatterns and pitfalls", которую написал Mark Richards. Особенно интересными мне показались дополнительные способы проверки границ микросервисов. Если вы собираетесь переходить или уже перешли на микросервисную архитектуру, то вам должно понравиться. В чём заключается функциональность сервиса? Письменный или устный ответ на этот вопрос — отличный способ понять, перегружен ли сервис. Чем чаще в описании встречаются соединительные...
3 месяца назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала