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

В этой статье я хотел бы рассмотреть микросервисные паттерны под другим углом. Когда я начинал изучение микросервисных паттернов, у меня постоянно был вопрос: Так это же было в другом паттерне. Я решил немного структурировать их: объединить по похожим элементам. Кластеризировать микросервисные паттерны достаточно тяжело так как каждый паттерн по‑своему уникален, однако для запоминания на собеседованиях или для себя это сделать можно. Основной контент статьи — картинка, далее идёт описание, чтобы всё было в одном месте.

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

Всем привет! Это Алексей Рыбак, основатель R&D-центра Devhands. Мы занимаемся образованием экспертного уровня, внимательно следим за краткосрочными и долгосрочными трендами в индустрии, поэтому предлагаем вашему вниманию очень интересную на наш взгляд ретроспективную статью Константина РатвинаЧитать полностью »

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

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 лет. Я постарался сократить его содержание для удобства восприятия и хотел бы услышать ваши мысли по этому поводу. Читать полностью »


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