Перейти к основному содержимому
Нормативная версия документации - английская

Эта страница переведена с английского языковой моделью. При любом расхождении верен английский оригинал.

Строим сервис шаг за шагом

Одиннадцать глав строят один сервис на RustStream, небольшой магазин: от первого подписчика до сетевого брокера.

Магазин принимает заказ, списывает оплату, отправляет заказ и уведомляет покупателя. Каждый шаг - это подписчик, и шаги обмениваются сообщениями через темы. Магазин работает на in-memory брокере, поэтому для любой главы ничего не нужно устанавливать. Каждая глава подключает нужные ей компоненты и ссылается на их страницы в разделе Компоненты. У каждого блока кода две вкладки: «Макросы» с атрибутами и derive-макросами и «Вручную» с тем же кодом, написанным без них.

Готовый магазин лежит в репозитории в examples/guide, а его ручная версия - в examples/manual/guide. CI собирает обе версии и запускает их тесты при каждом изменении. Каждая часть магазина - отдельный модуль: orders.rs, payments.rs, shipping.rs и notifications.rs. state.rs содержит то, что подписчики используют совместно, observability.rs - собственный middleware магазина, а service.rs собирает приложение. main.rs - точка входа командной строки, а http.rs запускает тот же магазин рядом с HTTP-сервером.