Статьи

Справочные статьи экосистемы redb: разборы, механизмы и рабочие примеры.

Подписаться по RSS

Статьи

Украли access-token. Что дальше: три слоя защиты в своём OpenID-провайдере Bearer-токен работает у любого, кто его держит. Три слоя защиты в redb.Identity: BFF, привязка к ключу через DPoP, быстрый отзыв. И что даёт кража всей базы.
Украли access-token. Что дальше: три слоя защиты в своём OpenID-провайдере Bearer-токен работает у любого, кто его держит. Три слоя защиты в redb.Identity: BFF, привязка к ключу через DPoP, быстрый отзыв. И что даёт кража всей базы.
WS-Trust поверх OAuth: третий транспорт OpenID-сервера, для контура, который живёт на SOAP redb.Identity получил WS-Trust фасад: Issue, Validate, Cancel, Renew на тех же маршрутах ядра. Тот же JWT, тот же реестр клиентов, WSDL для генератора.
WS-Trust поверх OAuth: третий транспорт OpenID-сервера, для контура, который живёт на SOAP redb.Identity получил WS-Trust фасад: Issue, Validate, Cancel, Renew на тех же маршрутах ядра. Тот же JWT, тот же реестр клиентов, WSDL для генератора.
Микросервисы на .NET без своей платформы: кластер воркеров, общий дашборд и горячая замена модулей Один и тот же артефакт разворачивается монолитом и кластером микросервисов. Те же модули, один дашборд на все воркеры, горячая замена без рестарта контейнера.
Микросервисы на .NET без своей платформы: кластер воркеров, общий дашборд и горячая замена модулей Один и тот же артефакт разворачивается монолитом и кластером микросервисов. Те же модули, один дашборд на все воркеры, горячая замена без рестарта контейнера.
Выражения в .NET-маршрутах: один язык для условий, значений и шаблонов, скомпилированный в IL Строка header.amount > 1000 компилируется в делегат; условия, ${...} и Expr() говорят на одном языке. Чем это отличается от Simple в Camel.
Выражения в .NET-маршрутах: один язык для условий, значений и шаблонов, скомпилированный в IL Строка header.amount > 1000 компилируется в делегат; условия, ${...} и Expr() говорят на одном языке. Чем это отличается от Simple в Camel.
redb 3.7: свой gRPC-протокол, отсечение props до агрегата и релиз, отозванный через день Свой gRPC-wire в Route, отсечение props до агрегата в redb.Core, Tsak закрыт по умолчанию, второй фасад у Identity. И 3.7.0, отозванный через день.
redb 3.7: свой gRPC-протокол, отсечение props до агрегата и релиз, отозванный через день Свой gRPC-wire в Route, отсечение props до агрегата в redb.Core, Tsak закрыт по умолчанию, второй фасад у Identity. И 3.7.0, отозванный через день.
У OpenID-сервера появился второй транспорт: gRPC рядом с HTTP, на тех же маршрутах redb.Identity получил gRPC-фасад: те же маршруты ядра, тот же реестр клиентов, один токен на оба транспорта. Что внутри, как включить, что померить.
У OpenID-сервера появился второй транспорт: gRPC рядом с HTTP, на тех же маршрутах redb.Identity получил gRPC-фасад: те же маршруты ядра, тот же реестр клиентов, один токен на оба транспорта. Что внутри, как включить, что померить.
Папка как интеграция: файловый обмен в .NET без cron, FileSystemWatcher и самописных костылей Опрос каталога, ожидание дописи файла, идемпотентность и атомарная запись через temp+rename: файловый обмен как обычный шаг маршрута.
Папка как интеграция: файловый обмен в .NET без cron, FileSystemWatcher и самописных костылей Опрос каталога, ожидание дописи файла, идемпотентность и атомарная запись через temp+rename: файловый обмен как обычный шаг маршрута.
redb 3.7.1: поиск по props быстрее до 100 раз. Альтернатива EF Core или дополнение к нему Цена запроса не зависела от того, что ищешь: фильтр стоял над GROUP BY. Теперь отсечение идёт до агрегата, на трёх движках, без единой правки в коде приложения. До 100 раз на диапазоне по дате и в 5,3 раза на полной выборке в MS SQL Server.
redb 3.7.1: поиск по props быстрее до 100 раз. Альтернатива EF Core или дополнение к нему Цена запроса не зависела от того, что ищешь: фильтр стоял над GROUP BY. Теперь отсечение идёт до агрегата, на трёх движках, без единой правки в коде приложения. До 100 раз на диапазоне по дате и в 5,3 раза на полной выборке в MS SQL Server.
Control Bus для .NET-маршрутов: останавливать, перезапускать и реагировать на события в рантайме Управляйте маршрутами в рантайме сообщением: start, stop, suspend, restart, плюс консюмер, превращающий события жизненного цикла маршрута в сообщения.
Control Bus для .NET-маршрутов: останавливать, перезапускать и реагировать на события в рантайме Управляйте маршрутами в рантайме сообщением: start, stop, suspend, restart, плюс консюмер, превращающий события жизненного цикла маршрута в сообщения.
SOAP в .NET без WCF: WS-Security, MTOM и ?wsdl как шаг маршрута SOAP с WS-Security, MTOM и публикацией WSDL теперь нативный коннектор redb.Route: без WCF, без CoreWCF, без отдельного шлюза.
SOAP в .NET без WCF: WS-Security, MTOM и ?wsdl как шаг маршрута SOAP с WS-Security, MTOM и публикацией WSDL теперь нативный коннектор redb.Route: без WCF, без CoreWCF, без отдельного шлюза.
Как мы прогоняли свой OpenID-сервер через официальный conformance-suite и что он в нас нашёл Прогон OIDF conformance-suite по redb.Identity: как настроить сьют, почему кликали вручную, и какие реальные баги он нашёл, включая утечку телефона в id_token.
Как мы прогоняли свой OpenID-сервер через официальный conformance-suite и что он в нас нашёл Прогон OIDF conformance-suite по redb.Identity: как настроить сьют, почему кликали вручную, и какие реальные баги он нашёл, включая утечку телефона в id_token.
Архитектура движка подбора билетов: три GDS, железная дорога и маршрут, который меняют в дороге Референсная архитектура движка подбора билетов на redb: канонная модель, Scatter-Gather по трём GDS и ж/д, дерево-маршрут и saga-переоформление в дороге.
Архитектура движка подбора билетов: три GDS, железная дорога и маршрут, который меняют в дороге Референсная архитектура движка подбора билетов на redb: канонная модель, Scatter-Gather по трём GDS и ж/д, дерево-маршрут и saga-переоформление в дороге.
Не заводите вторую базу ради объектов: redb против MongoDB и RavenDB Объектное хранилище с типами, деревьями и настоящим SQL прямо в вашей PostgreSQL/MS SQL/SQLite. FK на объекты, EF и Dapper рядом. redb против Mongo и Raven.
Не заводите вторую базу ради объектов: redb против MongoDB и RavenDB Объектное хранилище с типами, деревьями и настоящим SQL прямо в вашей PostgreSQL/MS SQL/SQLite. FK на объекты, EF и Dapper рядом. redb против Mongo и Raven.
redb 3.6.0: багрепорт, который оказался в шести провайдерах сразу — плюс AS2/EDI и общий порт Отчёт пользователя вскрыл утечку между диалогами в query-провайдере ядра — 6 из 6. Что ещё в 3.6.0: AS2/EDI, общий Kestrel, Camel-паритет.
redb 3.6.0: багрепорт, который оказался в шести провайдерах сразу — плюс AS2/EDI и общий порт Отчёт пользователя вскрыл утечку между диалогами в query-провайдере ядра — 6 из 6. Что ещё в 3.6.0: AS2/EDI, общий Kestrel, Camel-паритет.
AS2 в .NET без отдельного Java-гейтвея: EDI-обмен с партнёрами прямо в маршруте AS2 — подписанный и зашифрованный S/MIME-обмен документами с торговыми партнёрами — теперь нативный коннектор redb.Route, а не внешний гейтвей.
AS2 в .NET без отдельного Java-гейтвея: EDI-обмен с партнёрами прямо в маршруте AS2 — подписанный и зашифрованный S/MIME-обмен документами с торговыми партнёрами — теперь нативный коннектор redb.Route, а не внешний гейтвей.
Локальная база на клиенте: Blazor WebAssembly и MAUI на SQLite — без DbContext, Include и миграций Офлайн-хранилище со сложным графом и outbox: быстрый старт в MAUI и в браузере, базовые операции и почему в этой роли EF Core только мешает.
Локальная база на клиенте: Blazor WebAssembly и MAUI на SQLite — без DbContext, Include и миграций Офлайн-хранилище со сложным графом и outbox: быстрый старт в MAUI и в браузере, базовые операции и почему в этой роли EF Core только мешает.
Архитектура TMS на .NET: кластер, потоки координат и объектное хранилище Как устроен TMS-бэкенд: пятнадцать модулей на трёх нодах, потоки координат через Kafka и Redis и типизированное хранилище.
Архитектура TMS на .NET: кластер, потоки координат и объектное хранилище Как устроен TMS-бэкенд: пятнадцать модулей на трёх нодах, потоки координат через Kafka и Redis и типизированное хранилище.
Переезд с ESB на свой стек: что реально экономит бизнес Один модуль переехал с ESB, и кода стало в 1.7 раза больше. Почему это правильный исход.
Переезд с ESB на свой стек: что реально экономит бизнес Один модуль переехал с ESB, и кода стало в 1.7 раза больше. Почему это правильный исход.
Сколько стоит интеграционный слой на WSO2 MI и EF Core: разбор реальной системы по строкам Интеграционный слой на WSO2 MI и EF Core, посчитанный по строкам: во что обходится поддержка реального TMS-бэкенда.
Сколько стоит интеграционный слой на WSO2 MI и EF Core: разбор реальной системы по строкам Интеграционный слой на WSO2 MI и EF Core, посчитанный по строкам: во что обходится поддержка реального TMS-бэкенда.
Референсная архитектура платёжной платформы на .NET: схемы, границы транзакций, модули, кластер Референсная архитектура платёжной платформы: модель реестра, границы транзакций, деление на модули и топология кластера.
Референсная архитектура платёжной платформы на .NET: схемы, границы транзакций, модули, кластер Референсная архитектура платёжной платформы: модель реестра, границы транзакций, деление на модули и топология кластера.
Платёжная платформа на .NET: во что она обходится и что из этого можно не писать Во что обходится платёжная платформа на .NET и какая часть работы уже решена рантаймом, на котором она стоит.
Платёжная платформа на .NET: во что она обходится и что из этого можно не писать Во что обходится платёжная платформа на .NET и какая часть работы уже решена рантаймом, на котором она стоит.
redb 3.4.0: переигрываем упавшее, патчим фреймворк без пересборки и раздаём права — экосистема .NET, повзрослевшая до эксплуатации Операции второго дня: переиграть упавшее, пропатчить фреймворк без пересборки и раздать права на control plane.
redb 3.4.0: переигрываем упавшее, патчим фреймворк без пересборки и раздаём права — экосистема .NET, повзрослевшая до эксплуатации Операции второго дня: переиграть упавшее, пропатчить фреймворк без пересборки и раздать права на control plane.
Ночной джоб, который сам нарезает партиции: cron, SQL-функция и сплиттер Ночной джоб, который сам нарезает партиции: cron-триггер, plpgsql-функция и сплиттер — без оркестратора посередине.
Ночной джоб, который сам нарезает партиции: cron, SQL-функция и сплиттер Ночной джоб, который сам нарезает партиции: cron-триггер, plpgsql-функция и сплиттер — без оркестратора посередине.
redb.Route — Telegram-коннектор: бот как маршрут. Long polling, клавиатуры, вебхуки и честный at-most-once Бот как обычный маршрут: long polling, клавиатуры, вебхуки и честный at-most-once вместо иллюзии доставки.
redb.Route — Telegram-коннектор: бот как маршрут. Long polling, клавиатуры, вебхуки и честный at-most-once Бот как обычный маршрут: long polling, клавиатуры, вебхуки и честный at-most-once вместо иллюзии доставки.
redb.Route — коннектор Amazon SQS + SNS: один URI на endpoint, конкурирующие консьюмеры, at-least-once и Publish-Subscribe через SNS→SQS. Уходим от MassTransit Вся очередь в одном URI: конкурирующие консьюмеры, at-least-once и publish-subscribe через SNS в SQS.
redb.Route — коннектор Amazon SQS + SNS: один URI на endpoint, конкурирующие консьюмеры, at-least-once и Publish-Subscribe через SNS→SQS. Уходим от MassTransit Вся очередь в одном URI: конкурирующие консьюмеры, at-least-once и publish-subscribe через SNS в SQS.
redb.Identity: OAuth 2.1 / OpenID Connect сервер на .NET, где протокол отделён от транспорта — по HTTP, по шине или вообще без сети. И без миграций Полноценный OAuth 2.1 / OIDC сервер на .NET, где протокол отделён от транспорта: token по HTTP, по шине или вообще без сети. И без миграций.
redb.Identity: OAuth 2.1 / OpenID Connect сервер на .NET, где протокол отделён от транспорта — по HTTP, по шине или вообще без сети. И без миграций Полноценный OAuth 2.1 / OIDC сервер на .NET, где протокол отделён от транспорта: token по HTTP, по шине или вообще без сети. И без миграций.
redb.Route — коннектор RabbitMQ: один URI на endpoint, RPC, конкурирующие консьюмеры и dead-letter. Уходим от MassTransit Весь брокер в одном URI: RPC, конкурирующие консьюмеры и dead-letter — без отдельного слоя конфигурации.
redb.Route — коннектор RabbitMQ: один URI на endpoint, RPC, конкурирующие консьюмеры и dead-letter. Уходим от MassTransit Весь брокер в одном URI: RPC, конкурирующие консьюмеры и dead-letter — без отдельного слоя конфигурации.
redb 3.3.0: решение уровня энтерпрайз на .NET — своя БД, свой Apache Camel и рантайм с дашбордом (и всё это бесплатно) Решение уровня энтерпрайз на .NET, которое принадлежит вам: своя БД, свой Apache Camel и рантайм с дашбордом.
redb 3.3.0: решение уровня энтерпрайз на .NET — своя БД, свой Apache Camel и рантайм с дашбордом (и всё это бесплатно) Решение уровня энтерпрайз на .NET, которое принадлежит вам: своя БД, свой Apache Camel и рантайм с дашбордом.
redb.Route: два маршрута за вечер — от отладочного воркера до энтерпрайза на Tsak Два маршрута за вечер: как отладочный воркер превращается в рантайм с дашбордом, деплоем и горячей перезагрузкой.
redb.Route: два маршрута за вечер — от отладочного воркера до энтерпрайза на Tsak Два маршрута за вечер: как отладочный воркер превращается в рантайм с дашбордом, деплоем и горячей перезагрузкой.
redb.Route — уходим от MassTransit, идём к Apache Camel: Kafka, Scatter‑Gather и транзакции по‑честному Коннектор Kafka, паттерн Scatter-Gather и то, что на самом деле происходит с транзакцией, когда ветки идут параллельно.
redb.Route — уходим от MassTransit, идём к Apache Camel: Kafka, Scatter‑Gather и транзакции по‑честному Коннектор Kafka, паттерн Scatter-Gather и то, что на самом деле происходит с транзакцией, когда ветки идут параллельно.
redb под SQLite, по-инженерному: как мы засунули движок запросов в C-расширение, почему дату храним числом и три бага с разбором Движок запросов внутри C-расширения, даты числами и три бага, пойманных до того, как их увидел кто-то ещё.
redb под SQLite, по-инженерному: как мы засунули движок запросов в C-расширение, почему дату храним числом и три бага с разбором Движок запросов внутри C-расширения, даты числами и три бага, пойманных до того, как их увидел кто-то ещё.
RedBase 3.2.0 — SQLite-провайдер: один файл, офлайн, Blazor WASM и мобилки Типизированное хранилище в одном файле: офлайн, Blazor WASM и мобилки — с тем же LINQ, что у серверных провайдеров.
RedBase 3.2.0 — SQLite-провайдер: один файл, офлайн, Blazor WASM и мобилки Типизированное хранилище в одном файле: офлайн, Blazor WASM и мобилки — с тем же LINQ, что у серверных провайдеров.
Свой Apache Camel под .NET, разбор по косточкам: HTTP-коннектор без ASP.NET MVC + паттерн Content-Based Router HTTP-коннектор прямо на Kestrel, без ASP.NET MVC, и паттерн Content-Based Router поверх него.
Свой Apache Camel под .NET, разбор по косточкам: HTTP-коннектор без ASP.NET MVC + паттерн Content-Based Router HTTP-коннектор прямо на Kestrel, без ASP.NET MVC, и паттерн Content-Based Router поверх него.
redb.Route.Llm 3.1.1 — как чат-демо вырастает в enterprise-агентскую платформу: streaming, RAG, governance, jury-арбитраж, sub-agents, реальные отчёты и прогнозы Что отличает чат-демо от агентской платформы: streaming, RAG, governance, jury-арбитраж, sub-agents и отчёты, по которым принимают решения.
redb.Route.Llm 3.1.1 — как чат-демо вырастает в enterprise-агентскую платформу: streaming, RAG, governance, jury-арбитраж, sub-agents, реальные отчёты и прогнозы Что отличает чат-демо от агентской платформы: streaming, RAG, governance, jury-арбитраж, sub-agents и отчёты, по которым принимают решения.
redb.Route 3.1.0 — LLM как ещё один транспорт: .To("llm://claude") и .AsLlmTool() Модель за тем же URI, что и любой другой транспорт, а существующие маршруты становятся инструментами для неё.
redb.Route 3.1.0 — LLM как ещё один транспорт: .To("llm://claude") и .AsLlmTool() Модель за тем же URI, что и любой другой транспорт, а существующие маршруты становятся инструментами для неё.
REDB изнутри, статья 1.1: индексы, или почему 13 таблиц на любую схему — это быстро Почему те же 13 таблиц остаются быстрыми на любой схеме: индексы, боевой лог и один урок про удаление индексов.
REDB изнутри, статья 1.1: индексы, или почему 13 таблиц на любую схему — это быстро Почему те же 13 таблиц остаются быстрыми на любой схеме: индексы, боевой лог и один урок про удаление индексов.
REDB изнутри, статья 1: 13 таблиц, на которых работает всё 13 таблиц, на которых работает всё, с настоящим SQL и объяснением, почему это не та схема, которую вы ожидаете.
REDB изнутри, статья 1: 13 таблиц, на которых работает всё 13 таблиц, на которых работает всё, с настоящим SQL и объяснением, почему это не та схема, которую вы ожидаете.
redb.Route 3.0.1 — плоская навигация по DSL, рефакторинг CRTP и тихий null Плоская навигация по DSL вместо вложенных лямбд, рефакторинг CRTP и тихий null, который вылезал только в рантайме.
redb.Route 3.0.1 — плоская навигация по DSL, рефакторинг CRTP и тихий null Плоская навигация по DSL вместо вложенных лямбд, рефакторинг CRTP и тихий null, который вылезал только в рантайме.
redb.Route изнутри: четыре in-memory канала и Exchange, который их связывает Четыре in-memory канала, из которых собран любой маршрут, и Exchange, который через них проходит.
redb.Route изнутри: четыре in-memory канала и Exchange, который их связывает Четыре in-memory канала, из которых собран любой маршрут, и Exchange, который через них проходит.