Рубрика «интеграции»

В статье разберём, почему timeout не позволяет однозначно определить результат бизнес‑операции и как безопасно обрабатывать такие ситуации.

Представим ситуацию:

  1. Наша система отправляет внешней системе запрос «Создать платёж на 50 000 ₽»
    POST /payments

  2. Внешняя система получает запрос и создаёт платёж

  3. Внешняя система отправляет ответ о созданном платеже

  4. При отправке ответа происходит ошибка и он не доходит до нашей системы

  5. Наша система не получает ответ в установленное время и фиксирует timeout

Можно ли повторить запрос на создание платежа?

Читать полностью »

Личный кейс из телекома: как мы сопоставляли биллинг, 1С, адреса, услуги и партнерскую платформу, чтобы найти, где нарушается синхронизация

Когда говорят про DWH, чаще всего обсуждают управленческую отчетность, BI-дашборды, витрины данных и красивые графики для руководителей.

Что такое DWH

DWH — единая база, в которой собраны и хранятся все значимые данные компании, аккумулированные из разных источников.

Читать полностью »

Бороздя просторы космоса Хабра, рабочих репозиториев и не только, в сегменте Java разработчиков и других JVM динозавров, была обнаружена извественная проблема, большинство фич закрыты фича-флагами в виде простых переменных в коде (иногда чересчур замедруенными). И в этом хаосе родилась идея просто менеджера флагов для разных приложений.

В мире кубов и контейнеров JVM приложения чувствуют себя немного странного когда речь заходит о вопросах: кто сожрал все ресурсы в кластере? или как же мне вывернуть приложение чтобы не рестартить его? Со вторым вопросом предлагаю ознакомится ближе.
Читать полностью »

В документации Telegraph API для эндпоинта createPage указано ограничение на поле content:

content (Array of Node, up to 64 KB). Content of the page.

В реальности цифра не соответствует поведению. API стабильно возвращает CONTENT_TOO_BIG на русскоязычном тексте около 20 КБ исходного markdown. Я напоролся на это при разборе довольно странной деградации в нашем продакшне: часть постов блога публиковалась в связанный Telegram-канал без ссылки на Telegraph-версию, причём только русскоязычные, а их англоязычные переводы проходили нормально.

Читать полностью »

Привет!

Я студент, изучаю backend-разработку на Python. Недавно в рамках учебного проекта столкнулся с задачей: нужно было сделать интеграцию с платёжным сервисом. Они присылают уведомление (вебхук), когда пользователь оплатил заказ, а я должен обновить статус в базе.

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

Читать полностью »

Как добавить возможность расчета номеров задач в менеджере задач и проектов?

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

При этом, зачастую требуется расчет номеров для связанных задач нескольких служб: Например: Служба 1 -> Служба 2 -> Возврат номера службы 2 службе 1. Обычно же служб участвующих в цепочке - 7-8. Выполнение таких действий вручную становится очень трудозатратно.

Читать полностью »

Привет, меня зовут Екатерина, я работаю в ОТП Банке на позиции Senior-разработчика в одном из трайбов. В продолжение предыдущей статьи мы вместе с Александром, главным solution-архитектором, расскажем о вызовах, с которыми столкнулись при внедрении нереляционного хранилища в наше ДБО.

Читать полностью »

Привет! Я работаю на должности главного солюшн архитектора трайба в ОТП Банке. В своей работе часто сталкиваюсь с интересными архитектурными вызовами, которые возникают на стыке технологий, безопасности и бизнес-требований. Часть из них я уже описал в предыдущей статье, посвященной интеграции системы дистанционного банковского обслуживания (RBS) с бэкофисом (Event-Driven Architecture в высоконагруженном ДБО: наш опыт.)

Читать полностью »

Такие разборы задач отлично помогают потренироваться в подходах к решению рабочих задач + увеличить насмотренность.

Задача

Сценарий:  

У нас есть e-commerce платформа, состоящая из:

  • веб-приложения,

  • брокера сообщений,

  • бэкенда.

Клиенты могут заказывать товары, а складская система проверяет наличие товаров на складе.  

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

Проблема:  

Клиенты могут:


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js