Luxury e-commerce
Moda Operandi
Runway pre-orders and in-stock luxury retail: catalogue made fast, checkout made robust.
60%+faster catalogue
The challenge
Moda Operandi sells luxury fashion, beauty and home, and lets customers pre-order straight off the runway through Trunk Shows, before items are even manufactured.
The Rails monolith served catalogue and search directly from the database. Order code had grown tangled across years of contributors, and test coverage sat below 50%.
How it works
- 01
Page caching
Implemented page caching for high-traffic category pages (clothing, shoes, bags, sale) behind CloudFront.
- 02
Search as a service
Integrated Algolia across product search, category grids, faceted filtering (designer, colour, size, price) and sorting. Products sync to the index automatically on create, update and delete, so filtering never touches the database.
- 03
Order refactor
Led the refactor of order creation with the US team: extracted shared modules, removed dead code, documented complex conditions and rewrote critical paths functionally. Covered cancellation, refund and pricing policies, including member discounts and coupons.
- 04
Test coverage
Wrote 200+ new test cases, lifting coverage by 30–40% and paving the way for a separate Order service.
Engineering decisions
Move reads off the database
- Search and filtering moved to a purpose-built index. Category pages are served from cache. The database is left for writes and transactions.
Outcomes
- 60%+ performance improvement across catalogue and search.
- Search responses under 5 ms, with filters rendering instantly.
- Test coverage up 30–40% through 200+ new tests.
- Order domain cleaned up and ready to split into its own service.
Technology
- Ruby on Rails
- Monolith
- PostgreSQL
- Primary database
- Sidekiq
- Background jobs
- Algolia
- Search, facets and sorting
- AWS EC2 · CloudFront · S3
- Compute, caching, assets
- JavaScript
- Frontend
Contact
Have something you want to build?
Tell us what you're building, or what you'd like to automate. Let's figure out the next step.