Registry Platform
EPP-сервер + платёжный backend для премиум-зоны. Два канала продаж: B2C (сайт + Stripe/PayPal) и B2B (регистраторы через EPP).
RFC 5730–5734Сотни TLS-сессийStripe + PayPal
Бизнес-задача
Компания владеет премиум-доменом и продаёт домены третьего уровня (example.domain.com). Два канала продаж: B2C — конечные пользователи покупают через сайт, оплата Stripe/PayPal. B2B — крупные регистраторы (GoDaddy, Namecheap) подключаются по EPP (RFC 5730).
Ключевая задача
Реализовать EPP-сервер с нуля (RFC 5730–5734) для работы с долгоживущими TLS-сессиями и синхронизацией с Cloudflare DNS API одновременно с обработкой платежей B2C.
Архитектура
┌─────────────────┐ ┌─────────────────────┐
│ Web Portal │───HTTP───┐ │ External Registrars │
│ (Angular) │ │ TCP/TLS │ (GoDaddy, 101Domain) │
└─────────────────┘ │ └──────────┬──────────┘
▼ ▼
┌───────────────┐ ┌───────────────────┐
│ Backend │ │ EPP Server │
│ (Spring Boot) │ │(Spring Integration)│
└───────┬───────┘ └─────────┬─────────┘
│ │
┌───────────────┼───────────────────┤
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ PostgreSQL│ │Stripe/ │ │ Cloudflare│
│ (domains) │ │PayPal │ │ DNS API │
└───────────┘ └───────────┘ └───────────┘EPP-сервер (RFC 5730–5734)
Реализация серверной части стандарта с нуля.
- •Сетевой слой: Spring Integration TCP/NIO для удержания сотен долгоживущих TLS-сессий
- •Парсинг: XPath + XSD валидация входящих команд. Строгая проверка синтаксиса
- •Команды: полная поддержка жизненного цикла (Check, Create, Renew, Transfer, Delete, Restore)
- •Механизм опроса: очередь сообщений EPP (poll req/ack) для уведомления регистраторов
- •Расширение Fee: тарификация по уровням для премиум-имён
- •B2B-биллинг: депозитная система. Списание с внутреннего баланса партнёра при domain:create
Cloudflare (авторитетный DNS)
Зона обслуживается в Cloudflare. При регистрации поддомена:
- •Синхронно: запись в PostgreSQL (источник истины)
- •Асинхронно: вызов Cloudflare API для создания NS-записей (делегирование) или A-записей
- •Результат: домен начинает резолвиться глобально через секунды после EPP-команды
Платежи (B2C)
Полный цикл обработки платежей для конечных пользователей сайта.
- •Stripe: Checkout Sessions, Payment Intents, Setup Intents для сохранённых карт
- •PayPal: Orders API v2, OAuth авторизация
- •Вебхуки: асинхронная обработка статусов платежей
- •Saga: холдирование средств → регистрация в БД → асинхронный provisioning. Автоматический возврат при сбоях
Технологии
Core
Java 17Spring BootSpring Integration (TCP)NIO (non-blocking)
Data
PostgreSQLRedisLiquibase
Integrations
Cloudflare APIStripe APIPayPal API
Infra
DockerNginx (TCP stream)
Моя роль
- Реализовал EPP-сервер с нуля (RFC 5730) поверх TCP-сокетов
- Интегрировал Cloudflare DNS API для автоматического создания зон
- Реализовал платёжный модуль Stripe + PayPal с обработкой вебхуков
- Обеспечил транзакционную целостность: оплата → домен → DNS