Donde Cada
Milisegundo Cuenta
Donde Cada
Milisegundo Cuenta
Lava, una empresa conjunta de BelOrta, Coöperatie Hoogstraten y REO, necesitaba un nuevo software de subastas al renovar los ordenadores de sus salas de subasta. Unlock'd aportó la experiencia en desarrollo para construir el cliente de pujas en tiempo real.
Cada mañana de 6:00 a 10:00, compradores en múltiples salas de subasta y ubicaciones remotas pujan por productos frescos. El cliente funciona en ordenadores Windows integrados en el puesto de cada comprador y como aplicación web para pujadores remotos. Muestra relojes de precio descendente en vivo con el audio del subastador, donde cientos de compradores pujan simultáneamente.
Construir software de subastas donde el precio mostrado debe coincidir exactamente con la realidad requiere resolver el rendimiento de visualización y la precisión de las pujas en distintos equipos. Un retraso visual de apenas 100ms puede hacer que un comprador puje al precio equivocado.
Utilizando nuestra metodología de seis pasos, guiamos el desarrollo desde la validación inicial hasta una plataforma probada bajo carga que sirve a tres cooperativas. El cliente se construyó con Flutter, apuntando a escritorio Windows y web desde una única base de código.
1. IDENTIFICAR Y VALIDAR
Visitamos las salas de subasta de BelOrta, Coöperatie Hoogstraten y REO para observar el proceso existente y documentar la situación actual. Luego realizamos sesiones de Event Storming con las partes interesadas de las tres cooperativas para mapear el dominio completo de la subasta, identificando actores, eventos de dominio, comandos y reglas de negocio. Esto produjo un modelo compartido de todo el flujo de pujas que guió todas las decisiones de diseño y desarrollo posteriores.
1. IDENTIFICAR Y VALIDAR
Visitamos las salas de subasta de BelOrta, Coöperatie Hoogstraten y REO para observar el proceso existente y documentar la situación actual. Luego realizamos sesiones de Event Storming con las partes interesadas de las tres cooperativas para mapear el dominio completo de la subasta, identificando actores, eventos de dominio, comandos y reglas de negocio. Esto produjo un modelo compartido de todo el flujo de pujas que guió todas las decisiones de diseño y desarrollo posteriores.
2. MAPEO DE IMPACTO
El resultado del Event Storming identificó más de 25 eventos de dominio y múltiples procesos, desde el inicio del reloj hasta el arbitraje y el registro de transacciones. Mapeamos funcionalidades con resultados de subasta: una animación fluida del reloj respalda la confianza en las pujas, el audio en vivo mantiene a los compradores sincronizados con el subastador, y el acceso web remoto amplía la participación más allá de la sala de subastas. Cada funcionalidad se priorizó según su impacto en la integridad de la subasta.
3. AUDITORÍA TÉCNICA
Evaluamos las capacidades de renderizado de Flutter para la animación del reloj en tiempo real. La auditoría identificó que separar las operaciones costosas (redibujar 100 puntos de precio) de las ligeras (animar el indicador de precio activo) permitiría un rendimiento fluido en todo el hardware objetivo. Esto definió la arquitectura.
4. PROTOTIPADO RÁPIDO
Las sesiones de Event Storming alimentaron directamente el mapeo de historias de usuario y el diseño de wireframes. Construimos un prototipo de reloj independiente para validar el enfoque de renderizado antes de la integración. Las pruebas en distintos niveles de hardware confirmaron que el enfoque ofrecía un rendimiento consistente. El prototipo permitió a las partes interesadas evaluar la experiencia de puja directamente.
5. DESARROLLO Y LANZAMIENTO
Desarrollamos la plataforma con conexiones WebSocket en vivo al servidor de subastas, streaming de audio en tiempo real y un mecanismo de captura de pujas que registra el precio exacto mostrado en el momento en que el comprador hace clic. El cliente se lanzó en los ordenadores de puesto en las tres cooperativas.
6. ITERACIÓN Y OPTIMIZACIÓN
Tras el lanzamiento, construimos una herramienta de pruebas de carga que simula 500 compradores concurrentes a lo largo del flujo completo de subasta. Esto validó la capacidad de la plataforma antes de la temporada alta e identificó las características de rendimiento bajo condiciones de carga realistas.
Utilizando nuestra metodología de seis pasos, pasamos de sesiones de Event Storming con las tres cooperativas a una plataforma de subastas probada bajo carga. El modelo de dominio construido durante el descubrimiento guió cada decisión técnica, desde el diseño de la API hasta el mecanismo de captura de pujas.
¿Enfrenta un desafío similar con múltiples partes interesadas?
Cada mañana de 6:00 a 10:00, los compradores en las salas de subasta de Roeselare, Sint-Katelijne-Waver y Hoogstraten pujan por productos frescos.
El subastador selecciona un producto de la oferta del día, lo anuncia por audio y arranca el reloj. El precio comienza alto y desciende. Los compradores siguen el reloj en su pantalla de puesto o navegador y hacen clic para pujar en el momento adecuado.
La primera puja detiene el reloj para todos. El micrófono del ganador se abre para audio bidireccional con el subastador para discutir volúmenes, preferencias de lotes e instrucciones de transporte. Los detalles de la transacción aparecen en tiempo real en la pantalla del comprador para su verificación. Una vez confirmado, el reloj se reinicia para el volumen restante.
Desde la consola del subastador hasta la pantalla del comprador, construida para tres cooperativas sobre infraestructura compartida
La plataforma recibe eventos de subasta del módulo administrativo a través de WebSocket y los visualiza en la pantalla del comprador. Cada reloj opera de forma independiente, y el sistema de pujas garantiza la captura precisa del precio en todos los compradores conectados.

Todo lo que un Comprador Necesita en Día de Subasta
La plataforma ofrece a los compradores de las tres cooperativas una experiencia consistente, ya sea desde su puesto en la sala de subastas o pujando remotamente desde su oficina.
Los compradores siguen el precio descendente en un reloj fluido que se actualiza a 60 fotogramas por segundo. El indicador de precio se mueve de forma continua, dando a los compradores la confianza para pujar en el momento exacto.
Cuando un comprador hace clic para pujar, la plataforma garantiza que el precio enviado coincide con lo que se mostraba en pantalla. Los compradores ven exactamente por cuánto están pujando, incluso en hardware de puesto más lento.
Los compradores escuchan los comentarios en vivo del subastador a través de streaming de audio en tiempo real. Tras ganar una puja, se abre audio bidireccional para que el comprador y el subastador puedan comunicarse sobre volúmenes, preferencias de lote e instrucciones de transporte.
Los compradores pueden seguir múltiples relojes simultáneamente en distintos grupos de productos y subastadores. Las plantillas de diseño permiten a los compradores configurar qué relojes mostrar en su pantalla.
Escribimos en detalle sobre la arquitectura de renderizado del reloj. Leer el artículo de insight
- 0
- cooperativas atendidas
- 0+
- eventos de dominio mapeados
- 0
- compradores simultáneos probados
- 0fps
- fotogramas por segundo
Construido con Flutter para un rendimiento consistente en ordenadores Windows de puesto y navegadores web, desde una única base de código.
El cliente de escritorio funciona en los ordenadores integrados de cada puesto de comprador en las salas de subasta de BelOrta, Coöperatie Hoogstraten y REO. El cliente web extiende el acceso a pujadores remotos. Entre los desafíos específicos de cada plataforma se incluyeron el escalado de alta resolución en las pantallas de puesto, la integración con gestores de contraseñas en web y un mecanismo de actualización forzada para asegurar que todos los ordenadores de puesto ejecuten la última versión durante las subastas en vivo.
¿Necesitas software para una operación compleja con múltiples partes interesadas?
Construimos la plataforma de subastas de Lava desde el Event Storming hasta producción, sirviendo a tres cooperativas. Cuéntanos tu desafío en una llamada de descubrimiento gratuita de 30 minutos.


