Caso

Un marketplace de servicios

Un marketplace de dos caras de proveedores y clientes con búsqueda, pedidos y transacciones seguras.

Año
2023
Cliente
Marketplace de servicios
Rol
Senior Backend Developer
U

Descripción

El marketplace conecta a clientes y proveedores de servicios: un catálogo con búsqueda y filtros, perfiles de especialistas con valoraciones y reseñas, realización de pedidos, transacciones seguras con retención de fondos (escrow) y un sistema de mensajería. Desarrollé la parte del servidor en Laravel con un modelo de dominio bien pensado y una autorización estricta: cada acción se comprueba mediante políticas bajo el principio de denegado por defecto, y el acceso a los pedidos y datos ajenos se excluye con comprobaciones de propiedad. La búsqueda y el filtrado están optimizados con índices de PostgreSQL, y las consultas calientes del catálogo se almacenan en caché en Redis. Las notificaciones, los envíos de correo y el recálculo de valoraciones se trasladan a colas para no ralentizar las solicitudes de los usuarios. Las operaciones monetarias de las transacciones se contabilizan en unidades mínimas enteras con auditoría de todas las transiciones, y la integración con el proveedor de pagos se basa en callbacks idempotentes.

Problema

La plataforma anterior sufría de búsquedas lentas, una autorización insegura con acceso a pedidos ajenos y un envío síncrono de notificaciones que hacía que las páginas se colgaran bajo carga.

Solución

Rediseñé el modelo de dominio, introduje políticas de autorización para cada acción, optimicé la búsqueda con índices y una caché en Redis, trasladé las notificaciones y el recálculo de valoraciones a colas e implementé transacciones seguras con retención de fondos.

Resultados

La velocidad de búsqueda aumentó 6 veces, se eliminaron las vulnerabilidades de acceso a datos ajenos, las páginas dejaron de colgarse bajo carga, la conversión a pedido realizado creció un 18% y la plataforma alcanzó los 30.000 usuarios activos.

Tecnologías