Рубрика «распределенные системы»

Меня зовут Миша, я бэкенд‑разработчик в платформе Яндекс Еды, и сейчас я покажу немного настоящего кода процессинга заказа.

e, err := w.prepareExecutor(ctx, req)
if err != nil {
    return nil, err
}

if err := e.CreateAndPay(); err != nil {
    return e.HandleResult(err)
}

if err := e.InitializeNativeDelivery(); err != nil {
    return e.HandleResult(err)
}

if err := e.WaitForOrderConfirmation(); err != nil {
    return e.HandleResult(err)
}

if err := e.WaitDelivery(); err != nil {
    return e.HandleResult(err)
}

return e.HandleResult(nil)

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

Введение: два источника правды - одна большая проблема

Представьте: вы строите систему верификации дипломов. Требования простые - данные должны быть неизменяемыми (привет, блокчейн) и при этом быстро доступными для запросов (привет, PostgreSQL). Казалось бы, идеальное решение - писать в оба хранилища. Но дьявол, как всегда, кроется в деталях.

Наш проект использует паттерн двойной записи (Dual-Write):

  • Solana — гарантирует неизменность и прозрачность данных о выданных дипломах

  • PostgreSQL (Supabase) — обеспечивает быстрые выборки и сложные запросы

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

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

Основные проблемы микросервесных приложений:

  1. Сложный обмен данными между сервисами.

  2. Сбор и отдача данных из разных сервисов с агрегацией, фильтрацией, пагинацией и прочей обработкой.

  3. Консистентность данных между сервисами.

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

Как мы накормили драконов (и заработали кучу золота) - 1

Вступление: Драконы и золото

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

Всем привет, меня зовут Вадим Макеров, я работаю в iSpring бэкенд-разработчиком.

Мы разрабатываем систему управления обучением (LMS - learning management system) iSpring Learn. Внутри система представляет из себя модульный монолит на PHP с почти сотней микросервисов на Go. Мы используем Kubernetes, Service Mesh, gRPC и прочие модные технологии :) Сейчас я работаю во внутренней команде Core, которая занимается внутренними улучшениями нашей системы.

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

Почему программное обеспечение движется только вперёд - 1


В случае масштабных систем не происходит ни откатов, ни запланированных переходов (cut-over) — ваше ПО движется только вперёд.

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

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

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

Государственные системы будут увеличивать контроль над людьми и приходить к тому, что сейчас происходит в Китае. Это в их ДНК.

Мы видим, что сейчас происходит с Павлом Дуровым: его судят за свободу слова и за крипту в Телеграме. Телеграм — лучший мессенджер в мире, и недавно количество его пользователей перевалило за 1 млрд. Государства не устраивает степень свободы, которую получили люди в Телеграме. И вместо точечной работы с преступниками они хотят влиять на саму площадку.

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


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