Compatibilidad determinista
La misma información produce el mismo resultado. El cálculo puede explicarse y probarse.
Caso de proyecto
Plataforma pensada primero para móvil que trata la compatibilidad de estilo de vida como un problema de producto, datos y confianza.
Contexto
Rummi nació al observar que cada vez más personas comparten vivienda y que buscar compañero sigue pareciéndose demasiado a una lotería. Las plataformas suelen optimizar habitaciones disponibles, pero dejan la convivencia para después.
¿Y si pudieras mudarte con alguien a quien ya conoces en términos de estilo de vida antes de compartir piso?
El producto intenta dar mejor contexto para decidir mediante perfiles, diez dimensiones de compatibilidad, criterios no negociables, búsqueda por distancia y comunicación en tiempo real.
Qué necesitaba comprender
Antes de implementar el cálculo de compatibilidad había que separar afinidades, tolerancias y criterios no negociables. Dos personas pueden coincidir mucho en promedio y ser incompatibles justo en aquello que ninguna está dispuesta a negociar.
Una consulta de candidatos tampoco es solo una operación geográfica. Combina distancia, privacidad, bloqueo, moderación y estado de cuenta.
Decisiones
La misma información produce el mismo resultado. El cálculo puede explicarse y probarse.
Filtran antes de ponderar afinidades para que una incompatibilidad importante no quede escondida.
La base resuelve las consultas por radio y proximidad sin trasladar candidatos a memoria.
Cada comportamiento reúne punto de entrada, validación y caso de uso alrededor de una capacidad del producto.
Arquitectura
La solución utiliza .NET 10 y ASP.NET Core, PostgreSQL y PostGIS como fuente de verdad, Redis para acelerar lecturas, SignalR para comunicación en tiempo real y almacenamiento de objetos para las imágenes.
Problemas interesantes
La búsqueda debía combinar radio, visibilidad, bloqueo, criterios no negociables y estado del perfil sin convertir el cálculo en filtros en memoria.
Actualizar la base y borrar Redis como operaciones independientes deja una ventana de inconsistencia. Un registro transaccional registra la intención junto al cambio persistido.
La eliminación afecta datos relacionales, caché, sesiones y objetos. Se diseñó como un proceso reanudable e idempotente.
El renderizado en servidor, el modo interactivo, las rutas de recursos y el almacenamiento mostraron diferencias que el entorno de desarrollo no revelaba.
Compromisos
PostGIS, Redis y un registro de salida transaccional resuelven problemas concretos, pero aumentan el coste operativo. La decisión fue aceptar complejidad solo cuando protegía una propiedad importante del sistema.
La compatibilidad determinista facilita explicación y pruebas, aunque renuncia a adaptarse automáticamente. En esta fase, comprender el resultado vale más que optimizar una señal de mercado que todavía no existe.
Resultado
Rummi cubre compatibilidad, búsqueda geoespacial, perfiles, privacidad, moderación, mensajería en tiempo real y gestión de cuenta. Está desplegado y permite validar el funcionamiento técnico de extremo a extremo.
Se encuentra en fase previa al lanzamiento público. No hay todavía evidencia para hablar de encaje con el mercado, crecimiento o tracción significativa.
Aprendizaje
Dominio, infraestructura y operación no son conversaciones separadas. Una decisión de privacidad cambia consultas; una de caché cambia consistencia; una de interfaz cambia el ciclo de vida del servidor.
Reduciría antes el alcance de algunas capacidades operativas y buscaría comentarios de uso con un recorrido más pequeño. Mantendría las pruebas de límites y el despliegue temprano.