Ореховый бульвар 26Б
Разработка аукционного сервиса
О проекте
Разрабатываем новый аукционный сервис. Сервис будет отвечать за проведение онлайн-торгов по пользовательским лотам: регистрацию участников, приём и последовательную обработку ставок, управление таймерами и автопродлением, определение победителя, резервирование задатков и обработку конкурентных операций.
Аукцион создаётся как отдельное приложение на Symfony в составе одного репозитория с основной платформой. Это новый код без необходимости поддерживать старую реализацию. Архитектура строится как модульный монолит с отдельной транзакционной базой данных и чёткими границами ответственности.
Основной стек
Технологии
- Backend : PHP 8.2+, целевая версия PHP 8.4; Symfony 7
- Данные : PostgreSQL, Doctrine DBAL, Doctrine Migrations
- Очереди : RabbitMQ, Symfony Messenger
- Realtime: Centrifugo, WebSocket
- Инфраструктура :Redis, Nginx, Docker, GitLab
- API : REST API, OpenAPI
Чем предстоит заниматься
- Разрабатывать модули аукционного сервиса на Symfony.
- Реализовывать приём и последовательную обработку ставок через RabbitMQ processing lanes.
- Работать с конкурентными командами одного аукциона: ставки, завершение, отмена и административные действия.
- Проектировать и реализовывать короткие атомарные операции в PostgreSQL.
- Разрабатывать статусные модели аукционов, заявок, задатков и сделок.
- Реализовывать идемпотентные команды, transactional outbox, повторную доставку и восстановление после сбоев.
- Интегрировать realtime-обновления через Centrifugo.
- Участвовать в разработке логического кошелька и операций резервирования средств.
Что важно
- Уверенное знание PHP и практический опыт разработки на Symfony.
- Опыт работы с PostgreSQL и понимание транзакций, блокировок и конкурентного доступа к данным.
- Опыт работы с RabbitMQ или другим брокером сообщений.
- Понимание идемпотентности, повторной доставки и eventual consistency.
- Опыт проектирования REST API.
- Умение писать поддерживаемый код и разбираться в сложной бизнес-логике и пограничных сценариях.
Будет плюсом
- Опыт разработки торговых, финансовых, биллинговых или high-load систем.
- Опыт работы с Symfony Messenger.
- Опыт с WebSocket, Centrifugo, Mercure или Pusher.
- Знание паттернов Inbox/Outbox, CQRS и Event Sourcing.
- Опыт мониторинга RabbitMQ и PostgreSQL.
Почему задача интересная
Это не стандартный CRUD-проект. В работе будут реальные инженерные задачи: конкурентные ставки, строгий порядок команд, временные переходы, отказоустойчивость, realtime-интерфейс и финансовые инварианты. Ключевые архитектурные решения уже зафиксированы, а разработчик сможет сосредоточиться на качественной реализации и развитии сервиса вместе с командой.