Блог

Заметки о разработке и продуктах

Практика из наших проектов: архитектура, оценки, интеграции и поддержка.

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

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

В процессе создания сервиса рассылок мы начинали с Mailchimp, затем перешли на DashaMail. Когда бизнес попросил перейти на внутренний агрегатор, мы провели анализ и выявили критичные ограничения: нет API, нет вебхуков статусов, не выдерживает нагрузку. Мы предложили компромисс — использовать внутренний агрегатор только для инфраструктурных писем, а клиентские оставить на внешнем. Сервис стал мультиагрегаторным.

Сервис рассылок на Laravel: как мы объединили отправку email и SMS для всех внутренних сервисов

Сервис рассылок на Laravel: как мы объединили отправку email и SMS для всех внутренних сервисов

В крупном проекте каждый сервис отправлял email и SMS по-своему: дублирование кода, отсутствие дашборда статусов, долгие доработки. Мы спроектировали единый сервис рассылок на Laravel и RabbitMQ из трёх решений — дашборд, API и отправитель. Провайдеры подключаются один раз, статусы видны через вебхуки агрегаторов, а команда больше не тратит время на дублирующиеся интеграции.

Асинхронная активация подарочных карт: продолжение истории

Асинхронная активация подарочных карт: продолжение истории

После автоматизации склада активность на сайте выросла. В пиковые дни количество активаций доходило до десятков тысяч в сутки. Синхронная активация начала давать сбои: задержки, дублирование запросов, ошибки в данных. Мы перевели активацию на асинхронную обработку через RabbitMQ и Laravel Jobs, увеличили количество воркеров и подключили WebSockets для мгновенного обновления баланса. Нагрузка снизилась, дубли исчезли, пользователь видит результат сразу.

Как мы автоматизировали склад подарочных карт: от Excel к системе с API для 1С

Как мы автоматизировали склад подарочных карт: от Excel к системе с API для 1С

Компания по продаже подарочных решений вела склад карт и промокодов в Excel. Обмен бонусов происходил вручную: клиент оставлял заявку, менеджер проверял активность карты и отправлял вознаграждение. Мы разработали на Laravel систему, которая заменила Excel на админ-панель: учёт карт, активация, бронирование, отчёты и API для 1С. Ручная работа сократилась до нуля — специалист переключился на более важные задачи.

Как мы отказались от Vue.js ради надёжности: история одного модуля авторизации

Как мы отказались от Vue.js ради надёжности: история одного модуля авторизации

Регулярные инциденты с зацикливанием авторизации заставили нас детально разобраться в проблеме. Причина оказалась неожиданной — старые устройства и браузеры пользователей в связке с корпоративным софтом безопасности начинали DDoS-ить сайт из-за особенностей Vue.js. Волевое решение: перевести сервис авторизации на максимально простой стек — HTML, CSS и нативный JavaScript без библиотек. После перехода проблема исчезла полностью.

ROSTU — экосистема для роста малого бизнеса

ROSTU — экосистема для роста малого бизнеса

ROSTU — белорусская SaaS-платформа, которая объединяет каталог для привлечения клиентов, CRM, виджет онлайн-записи, складской учёт и аналитику в одной системе. Базовый функционал — бесплатно. Без кассовых узлов и сложных интеграций. Подходит для салонов, СТО, ресторанов, магазинов, клиник и фитнес-клубов.

Как Vpodarok прошёл путь от монолита на Yii1 до сервисной архитектуры с собственным процессингом

Как Vpodarok прошёл путь от монолита на Yii1 до сервисной архитектуры с собственным процессингом

Проект Vpodarok начинался как обычный интернет-магазин подарочных сертификатов на Yii1. Со временем он превратился в экосистему с B2B-витринами, API и сложной бизнес-логикой. Рассказываем, как команда поэтапно вынесла ядро в отдельный сервис Processing, зачем понадобился Data Connector, и какие компромиссы пришлось принять при переходе к сервисной модели

Обсудим проект

Расскажите о задаче — оценим за пару дней

Контакты