- PHP · Symfony / Laravel
- PostgreSQL
- Redis
- Docker / Podman
- GitLab CI/CD
Challenge
The marketplace ran on an aging codebase: catalog growth and the number of sellers were capped by the architecture, and every change started by working around accumulated constraints.
Trading could not be paused for a rewrite — the site was earning, and a rewrite would have taken the working trading logic with it: seller rules, made-to-order pricing, the buying flow.
Solution
Backend and frontend were rebuilt in full with the trading logic preserved. The system was split into bounded contexts — identity and access, catalog, sellers, ordering, payments — each with its own data model, so a change in one does not reach into the others. The catalog carries base products, variants and attributes, sellers go through moderation, and the order lifecycle is kept separate from taking payment.
Server-side rendering covers first-load speed and indexing, with interactivity added where it earns its place. Heavy work — email, image processing, reports — was moved to a Redis queue, and data is stored in PostgreSQL. The migration ran without stopping sales.
Outcome
The marketplace moved to a new architecture with no pause in trading and no loss of trading logic. Catalog, sellers and transaction volume now grow within limits set by the new base rather than the old code: development happens feature by feature, and a new area arrives as its own context instead of a change that touches everything.
How it went
- 11/2025Taken on
- 11/2025Development started
- 01/2026Catalog and vendor accounts
- 04/2026Launched
- 04/2026Delivered