POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Diario de DSA y Diseño de Sistemas - 4

Diario de DSA y Diseño de Sistemas - Edición 4: Lecciones y Mejores Prácticas

Publicado el 02/09/2025

Hola, continúo mi diario de aprendizaje diario, explorando conceptos de System Design con la guía de roadmap.sh y practicando retos de DSA en LeetCode. Día 4.

Hoy toca un clásico de sistemas distribuidos: Disponibilidad vs Consistencia, una decisión íntimamente ligada al teorema CAP y a cómo diseñamos servicios resilientes.

Disponibilidad significa que un sistema sigue operativo y responde a las solicitudes incluso ante fallos. Se suele medir por porcentaje de uptime y, en ocasiones, implica responder aunque los datos devueltos no sean los más recientes.

Consistencia implica que todos los clientes ven la misma versión de los datos al mismo tiempo. Es esencial para la corrección e integridad, y en su forma fuerte garantiza que cada lectura refleje la última escritura confirmada.

Teorema CAP en pocas palabras: en un sistema distribuido, solo puedes garantizar a la vez dos de tres propiedades fundamentales Consistencia, Disponibilidad y Tolerancia a particiones. Dado que las particiones de red son inevitables, siempre necesitamos tolerarlas, y la elección práctica se reduce a CP o AP.

Diseños CP priorizan consistencia y tolerancia a particiones, a costa de disponibilidad ante fallos o latencia elevada. Piensa en banca y contabilidad, donde la exactitud supera al estar siempre en línea.

Diseños AP priorizan disponibilidad y tolerancia a particiones, aceptando lecturas potencialmente obsoletas con convergencia posterior. Es el enfoque típico en carritos de compra o feeds sociales, donde la experiencia fluida importa más que la consistencia estricta en tiempo real.

Mi reflexión: no existen sistemas perfectos. El arte del diseño está en decidir qué sacrificar y cuándo, alineando la estrategia con el caso de uso, los SLA, la experiencia de usuario y el riesgo operativo. Elegir bien entre disponibilidad y consistencia es un hito clave en la madurez de arquitectura.

DSA del día Container With Most Water. Tiempo aproximado 2 horas. El reto pide elegir dos líneas del array de alturas que formen el contenedor de mayor capacidad con el eje X. El ancho es la distancia entre índices y la altura viene limitada por la menor de las dos líneas.

Enfoque con dos punteros: se inicia con left en el inicio y right en el final. En cada iteración se calcula el área como distancia entre índices por la altura mínima de ambos lados y se actualiza max_area. A continuación se mueve el puntero del lado más bajo, porque solo así podemos aspirar a aumentar la altura mínima en el siguiente paso. Se repite mientras left sea menor que right.

Complejidad temporal O(n) frente a O(n^2) del enfoque por fuerza bruta. Comprobé casos extremos como alturas iguales en los extremos o una columna muy alta con muchas bajas, y la solución se simplifica al confiar en la regla de mover siempre el lado más corto.

Lecciones del día: en System Design los trade offs entre disponibilidad y consistencia son inevitables y deben decidirse según el objetivo del producto y el riesgo del dato. En DSA la técnica de dos punteros es oro cuando se trabaja con extremos y se busca reducir drásticamente la complejidad.

Sobre Q2BSTUDIO: somos una empresa de desarrollo de software que crea aplicaciones a medida y software a medida con arquitectura escalable y foco en calidad. Nuestro equipo es especialista en inteligencia artificial, ia para empresas y agentes IA, así como en ciberseguridad y pentesting, servicios cloud aws y azure, y servicios inteligencia de negocio con power bi. También impulsamos automatización de procesos y modernización de datos para acelerar la entrega de valor.

Si tu organización necesita diseñar servicios distribuidos con alta disponibilidad y observabilidad, te acompañamos en cada etapa de la nube. Conoce nuestros servicios cloud aws y azure para modernizar y optimizar costes con una arquitectura resiliente.

Y si buscas lanzar o escalar productos digitales robustos, desarrollamos software a medida alineado a tus objetivos, integrando analítica avanzada, seguridad desde el diseño y prácticas DevOps.

Me encantará conectar y leer tu feedback. Si estas ideas te resuenan o quieres aplicarlas en tu empresa, hablemos y diseñemos una hoja de ruta técnica sostenible y efectiva.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio