Все проекты

Okiyumi Rent

Коротко — Инфраструктура аренды Steam-аккаунтов.

Мультитенантная система, которая ведёт полный жизненный цикл аренды Steam-аккаунтов — от заказа на маркетплейсе до выдачи доступов и возврата аккаунта в пул.

Роль
Продукт и системная инженерия
Категория
Платформа / Автоматизация маркетплейса
Статус
Работает
Результат
Построил
Год
2026
Масштаб
Продакшен-платформа, построена и эксплуатируется соло
МАРКЕТПЛЕЙСзаказы FunPayСИНХРОНИЗАЦИЯ ЗАКАЗОВАЛЛОКАЦИЯАРЕНДАВЫДАЧА ДОСТУПОВРОТАЦИЯ ПАРОЛЕЙСНОВА ДОСТУПЕН

Частная система — часть деталей намеренно не публикуется.

Okiyumi Rent — структурасхема архитектуры

МАРКЕТПЛЕЙСзаказы FunPayСИНХРОНИЗАЦИЯ ЗАКАЗОВАЛЛОКАЦИЯАРЕНДАВЫДАЧА ДОСТУПОВРОТАЦИЯ ПАРОЛЕЙСНОВА ДОСТУПЕН

Жизненный цикл аренды — обобщённая схемасхема архитектуры

Обзор

Rent — инфраструктура под конкретный бизнес: Steam-аккаунты сдаются игрокам почасово или подневно, в основном через маркетплейс FunPay. Арендатор платит, получает рабочие данные аккаунта на заданный срок, а после аренды аккаунт обязан вернуться в пул — готовым, с сменённым паролем и в безопасности.

Зачем это существует

Ручная аренда не масштабируется надёжно: следить, какой аккаунт свободен, выдавать данные достаточно быстро после оплаты, хранить их безопасно, обрабатывать продления и возвраты, восстанавливаться после сбоев. Каждый ручной шаг — упущенный заказ или риск безопасности.

Моя роль

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

Что делает система

Заказ приходит с маркетплейса или из Telegram. Система находит здоровый аккаунт, создаёт аренду, доставляет покупателю свежие данные, следит за временем, обрабатывает продление или возврат и возвращает аккаунт в пул по завершении — с ротацией пароля до следующей выдачи.

Архитектура

Мультитенантное ядро, единый бизнес-конвейер: подтверждение оплаты, выдача, продление и возврат живут в одном race-protected движке, поэтому бизнес-правила существуют ровно в одном месте. PostgreSQL с Prisma; тенанты изолированы по дизайну, а не по договорённости.

Операции

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

Что было сложно

У FunPay нет чистого API для продавцов, поэтому приём заказов живёт за адаптером, который парсит внешнее состояние, — слой, который ломается при изменении маркетплейса и требует сознательной поддержки. Второй трудный участок — денежный путь: два покупателя, кликнувших в одну секунду, никогда не должны получить один аккаунт, а возврат не должен потратить его дважды.

Текущее состояние

В продакшене как часть экосистемы Okiyumi.

Чему я научился

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

Что я построил

  • 01Приём заказов с маркетплейса: слой синхронизации превращает заказы FunPay в заказы системы
  • 02Движок аллокации: race-protected назначение аккаунтов арендам
  • 03Выдача учётных данных через Telegram с HMAC-проверкой бота
  • 04Слой шифрования хранимых учётных данных
  • 05Конечный автомат аренды: выдача, продление, завершение, возврат
  • 06Продления и возвраты с защитой от гонок в денежном пути
  • 07Мультитенантная изоляция: данные и конфигурация тенантов разделены
  • 08Фоновые воркеры: свипы, напоминания, восстановление
  • 09Набор автоматических тестов (105 проверок на этапе фундамента)

Факты

  • 01Мультитенантное ядро с изоляцией тенантов
  • 02Движок выдачи аренды с продлением и возвратами, защита от race condition
  • 03Слой шифрования учётных данных аккаунтов
  • 04Доставка через Telegram с HMAC-проверкой бота
  • 05105 автоматических тестов на этапе фундамента
  • 06Контейнерный продакшен-деплой
Открыть rent.okiyumi.com