Case study

A services marketplace

A two-sided marketplace of providers and customers with search, orders and secure deals.

Year
2023
Client
Services marketplace
Role
Senior Backend Developer
A

Description

The marketplace connects customers and service providers: a catalog with search and filters, specialist profiles with ratings and reviews, order placement, secure deals with escrow of funds and a messaging system. I developed the server side in Laravel with a thought-out domain model and strict authorization: every action is checked by policies on a deny-by-default basis, and access to other users orders and data is excluded by ownership checks. Search and filtering are optimized with PostgreSQL indexes, and hot catalog queries are cached in Redis. Notifications, mailings and rating recalculation are moved into queues so as not to slow down user requests. Monetary operations on deals are accounted for in integer minor units with auditing of all transitions, and the integration with the payment provider is built on idempotent callbacks.

Task

The previous platform suffered from slow search, insecure authorization with access to other users orders, and synchronous notification sending that caused pages to hang under load.

Solution

I reworked the domain model, introduced authorization policies for every action, optimized search with indexes and a Redis cache, moved notifications and rating recalculation into queues, and implemented secure deals with escrow of funds.

Results

Search speed increased 6 times, vulnerabilities allowing access to other users data were eliminated, pages stopped hanging under load, conversion to a placed order grew by 18%, and the platform reached 30,000 active users.

Technologies