Pull to refresh
0
@Lineqread⁠-⁠only

User

Send message

Паттерн: Сага

Reading time2 min
Views149K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Pattern: Saga" автора Chris Richardson.


Ситуация


Есть приложение, к которому применялся паттерн Database per Service. Теперь у каждого сервиса приложения есть своя собственная база данных. Некоторые бизнес транзакции охватывают сразу несколько сервисов, так что нужен механизм, обеспечивающий согласованность данных между этими сервисами.


Например: давайте представим, что мы разрабатываем интернет магазин, где у клиента есть кредитный лимит. Приложение должно гарантировать, что новый заказ не превышает кредитный лимит клиента. Так как Заказы и Клиенты — различные базы данных, то приложение не может использовать локальные ACID транзакции.


Проблема


Как обеспечить согласованность данных между сервисами?


Решение


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


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


Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments10

Размер имеет значение. Как Ozon автоматизировал измерение товаров на складах

Reading time16 min
Views9K

Сотрудники каждого склада, которые хотят выстроить логистические процессы оптимальным образом, должны знать фактические габариты и вес товаров, которые хранятся на его площадях. Совокупность габаритов и веса товара в Ozon называют объёмно-весовыми характеристиками (ОВХ). 

Мы разработали, собрали и интегрировали в операционные процессы складов Ozon устройства для измерения габаритов и веса товаров. Об этом мы писали ранее. Но к идее создания своего решения пришли не сразу.

Читать далее
Total votes 53: ↑52 and ↓1+60
Comments28

Что делать, если твой заказчик — весы, или Как заговорить на одном языке с бытовой техникой

Level of difficultyEasy
Reading time7 min
Views4K

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

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

На руках у нас было три устройства — весы, чайник и мультиварка. О том, как они работают, мы знали только из инструкций и теоретической информации на сайте. У нас не было опыта разработки приложений для управления подобными умными устройствами. Также мы не знали, как работает управление по Bluetooth и Wi-Fi.

Проект обещал быть интересным.

Читать далее
Total votes 10: ↑9 and ↓1+11
Comments3

Diagnocat: как искусственный интеллект облегчает жизнь стоматологам и пациентам

Level of difficultyMedium
Reading time8 min
Views1.8K

Искусственный интеллект стал одной из самых горячих тем последние несколько лет. ChatGPT пишет книги и дипломные работы, DALL-E создает картины по текстовому описанию, стриминговые сервисы, такие как Кинопоиск, используют искусственный интеллект для создания рекомендации, голосовые помощники отвечают на почти любые запросы пользователей. Медицина и стоматология не стали исключением – искусственный интеллект меняет практику врачей. Согласно исследованию, опубликованному в Journal of Dental Sciences, благодаря интеграции технологии искусственного интеллекта и систем цифровой визуализации, стоматологи теперь могут быстрее анализировать рентген- и  КТ-снимки, а также выявлять проблемы со здоровьем полости рта: кариес, потерю костной ткани или развитие инфекции. 

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

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

Читать далее
Total votes 5: ↑3 and ↓2+3
Comments3

Анонимная сеть Hidden Lake → анализ QB-сетей, функций шифрования и микросервисов на базе математических моделей

Level of difficultyHard
Reading time17 min
Views4.3K

Анонимная сеть Hidden Lake (HL) - это децентрализованная F2F (friend-to-friend) анонимная сеть с теоретической доказуемостью. В отличие от известных анонимных сетей, подобия Tor, I2P, Mixminion, Crowds и т.п., сеть HL способна противостоять атакам глобального наблюдателя. Сети Hidden Lake для анонимизации своего трафика не важны такие критерии как: 1) уровень сетевой централизации, 2) количество узлов, 3) расположение узлов и 4) связь между узлами в сети.

Читать далее
Total votes 13: ↑13 and ↓0+16
Comments3

Генерация контрактов OpenApi или прикладной API first: гайд по генерации в Spring Boot приложении

Level of difficultyMedium
Reading time7 min
Views13K

Стек: OpenAPI, Spring Boot, Gradle

Небольшой гайд по генерации серверной и клиентской части в Spring Boot приложении.

Краткое содержание:

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

В сервисе-сервере сгенерируйте сервер по спецификации. Настройте созданные контроллеры/имплементируйте интерфейсы.

В сервисе-клиенте сгенерируйте клиентскую часть по спецификации. Подключите сгенерированного feign клиента.

Generate it
Total votes 4: ↑3 and ↓1+4
Comments9

Что нужно знать системному аналитику уровня Middle и Senior: план развития Hard Skills

Reading time11 min
Views118K

Решил составить для себя план развития (я в IT с 2007, как аналитик - с 2017). Что получилось: некий чек-лист с перечислением 13 блоков (от работы с требованиям до безопасности) с описанием, что обязательно и желательно знать/уметь.

С чего все началось. Я недавно менял работу, поэтому готовился к техническим собеседованиям. Для удобства составил шпаргалку частых вопросов по основным темам. Когда проходил собеседования и видел, чего я не знаю, то дописывал это в свою шпаргалку. А немного позже решил составить для себя что-то наподобие плана развития. При создании плана использовал личный опыт, опыт коллег, ряд статей, учебные планы нескольких школ, требования из вакансий.

Читать далее
Total votes 22: ↑21 and ↓1+23
Comments28

Kubernetes: шпаргалка для собеседования

Level of difficultyEasy
Reading time10 min
Views42K
Всем привет! Меня зовут Олег, я работаю исполнительным директором по разработке в Газпромбанке. На разных этапах карьеры я участвовал во многих собеседованиях, а в настоящее время сам собеседую кандидатов на должность инженеров DevOps и системных администраторов в Газпромбанке, вследствие чего у меня сформировалось некоторое представление о вопросах, которые могут быть заданы соискателям. И сейчас я хочу остановиться на разделе вопросов про Kubernetes.

image

Сразу хочу сказать, что изначально планировал сделать одну статью, но в итоге получилась такая простыня, что пришлось разделить текст на две части. Ссылку на вторую опубликую здесь, как только она появится (вот она).

Вопросы по Kubernetes достаточно часты на собеседованиях на инженерные вакансии, связанные с администрированием и эксплуатацией. Они могут варьироваться от базовых, рассчитанных на механическую проверку теоретических знаний («объясните, что такое service») до более сложных и комплексных, требующих глубинного понимания внутренних принципов Kubernetes и работы (каким образом опубликовать приложение, развёрнутое в Kubernetes). Давайте пойдём от базы в направлении возрастания сложности.
Читать дальше →
Total votes 19: ↑18 and ↓1+20
Comments12

Мониторинг Apache Airflow. Оценка «прожорливости» тасок

Reading time10 min
Views4.7K

Всем привет! Случались ли у вас ситуации, когда количество DAG’ов в вашем Airflow переваливает за 800 и увеличивается на 10-20 DAG’ов в неделю? Согласен, звучит страшно, чувствуешь себя тем героем из Subway Surfers… А теперь представьте, что эта платформа является единой точкой входа для всех аналитиков из различных команд и DAG’и пишут более 50 различных специалистов. Подкосились ноги, холодный пот и желание уйти из IT?

Не спешите паниковать, под катом я расскажу о том, как контролировать потребление ресурсов DAG’ов Airflow для предупреждения неоптимально написанных DAG’ов и борьбы с ними.

Меня зовут Давид Хоперия, я Data Engineer в департаменте данных Ozon.Fintech и моим основным инструментом является Apache Airflow, поэтому настало время углубиться в детали его работы.

Поехали
Total votes 16: ↑16 and ↓0+16
Comments10

Как системному аналитику не делать чужую работу

Level of difficultyEasy
Reading time8 min
Views15K

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

Читать далее
Total votes 26: ↑24 and ↓2+25
Comments14

Что мы делаем, когда у нас заказывают аналитику без нормальных формулировок

Reading time18 min
Views8.3K
«Дайте нам аналитику, — просит бизнес айтишников, — правда, мы глубоко в это погружаться не хотим, чётко сформулировать требования не можем и расчётам BI не очень-то доверяем».

Сюр?

Сюр. Но встречается на каждом шагу.

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

image
Читать дальше →
Total votes 13: ↑12 and ↓1+13
Comments7

Боли и другие болезни Заказчика: какое выбрать лечение, как докопаться до сути и правильно собирать требования

Level of difficultyEasy
Reading time6 min
Views1.4K

Приветствую читателей Хабра!

Меня зовут Белоусова Александра, я развиваю направление по обучению и стажировкам аналитиков в компании «Автомакон».

В прошлой статье про виды аналитиков и их различия затронула один из ключевых моментов — фразы «выяснить требования», «выявить боль Заказчика», «докопаться до сути проблемы» употребляют сейчас все, а понимают, что они действительно значат, — единицы!

В этой статье я попытаюсь приоткрыть завесу тайны этих кажущихся на первый взгляд простых и понятных фраз, но таких, как показывает практика, загадочных.

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments0

Как мы делаем опенсорс курсы для программистов от программистов

Level of difficultyEasy
Reading time8 min
Views37K
Мы разочаровались в курсах по программированию и поэтому сделали свои собственные. Не для вайтишников, а для типичных разрабов. В процессе нас хакнул инфлюенсер и забанил сервер телеграма.

Покоцанные, но не сломленные, мы представляем проект, над которым работали полтора года по ночам. Курсы по программированию с задачами в online IDE и прагматичной теорией. Никаких сертификатов и гарантий трудоустройства. Сплошной хардкор и опенсорс!


Читать дальше →
Total votes 120: ↑119 and ↓1+136
Comments76

Микросервис на Python+ FastAPI

Level of difficultyEasy
Reading time19 min
Views21K

Микросервис — это подход к разбиению большого монолитного приложения на отдельные приложения, специализирующиеся на конкретной услуге/функции. Этот подход часто называют сервис-ориентированной архитектурой или SOA.

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

В микросервисной архитектуре приложение разбивается на несколько отдельных служб, которые выполняются в отдельных процессах. Существует другая база данных для разных функций приложения, и службы взаимодействуют друг с другом с использованием HTTP, AMQP или двоичного протокола, такого как TCP, в зависимости от характера каждой службы. Межсервисное взаимодействие также может осуществляться с использованием очередей сообщений, таких как RabbitMQ , Kafka или Redis .

Читать далее
Total votes 12: ↑11 and ↓1+14
Comments7

Личный опыт: тестовое для поиска на позицию Junior Product Manager

Level of difficultyEasy
Reading time6 min
Views4.3K

Меня зовут Герман, я руководитель продуктового направления лояльности в компании CSI. Недавно мы решили расширить продуктовую команду и мне нужно было разработать тестовое задание для отбора подходящих кандидатов на позицию Junior Product Manager. Я делал это впервые и с нуля. Решил зафиксировать этот опыт и кратко поделиться принципами, которыми руководствовался при его подготовке.

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments2

Словарь-справочник юридических терминов из ГОСТов для сферы IT. Часть 2 — Аг-Ам

Level of difficultyEasy
Reading time16 min
Views1.5K

При составлении контрактов, технических заданий, проектов термины становятся юридически значимыми определяющими условиями. В текущих условиях, когда требования ст. 46 184-ФЗ «О техническом регулировании», ГОСТы являются уже не добровольной, а обязательной нормой. Возникает необходимость использовать и сопоставлять тысячи терминов. Для облегчения работы с этими понятиями и создан этот словарь.

Читать далее
Total votes 11: ↑2 and ↓9-5
Comments17

Как я нашел способ отследить всех водителей «Ситимобил»

Reading time5 min
Views145K
В субботу вечером я, как всегда, сидел и снифил трафик со своего телефона. Внезапно, открыв приложение «Ситимобил» я увидел, что один интересный запрос выполняется без какой-либо аутентификации.

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


Читать дальше →
Total votes 362: ↑359 and ↓3+470
Comments300

Способы манипулирования экспертным мнением

Reading time11 min
Views7.1K

Кто такие эксперты?


Современные проекты в основном сложны. Если вам кажется, что проект прост, то вы, скорее всего, либо не обладаете полным набором необходимой информации, либо пользуетесь готовыми технологическими «строительными блоками», либо являетесь экспертом. Технический эксперт — это тот, кто разбирается в технологиях и способах их применения достаточно хорошо, чтобы его советы или его действия положительно влияли на проект в части качества результатов, рисков, бюджетов и прочих проектных параметров. Обычно технический эксперт вырастает (а, точнее, прорастает) «изнутри» своей индустрии. Технические эксперты из академических кругов, из финансовых кругов, из числа кабинетных менеджеров в дикой природе почти не встречаются. Исключения настолько редки, что проще предположить, что мы имеем дело с очередным шарлатаном-имитатором. Редкий Остап Бендер упустит возможность запудрить мозги провинциальным шахматистам, пожрать на халяву и срубить легких деньжат. Но в этой статье мы не будем говорить о шарлатанах, а сосредоточимся на жизнедеятельности настоящих экспертов.

Помощь технического эксперта в проектах сводится к следующему набору действий, выполняемых в любых сочетаниях:
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments0

Что общего у архитектуры программного обеспечения и градостроительства

Level of difficultyEasy
Reading time4 min
Views2.9K

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

Читать далее
Total votes 31: ↑29 and ↓2+29
Comments17

Как я сделал телеграмм-бота для массовых откликов на вакансии и что мне это дало

Reading time3 min
Views23K

Началось все как у всех, с поиска работы. Изначально планировал собрать информацию об аккредитованных компаниях, чтобы в дальнейшем к ним устроиться. При поиске обнаружил, что у HeadHunter уже реализован поиск по данному критерию. Супер, но я планировал собрать контактные данные, решил ознакомиться с API HH.

Читать далее
Total votes 27: ↑22 and ↓5+19
Comments82

Information

Rating
Does not participate
Registered
Activity