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 - 6

Diario de DSA y Diseño de Sistemas - 6: Lecciones para diseñar sistemas escalables

Publicado el 04/09/2025

Día 6 Diseño de Sistemas y DSA

Sigo con mi rutina diaria de aprendizaje combinando conceptos de Diseño de Sistemas mediante la ruta de roadmap punto sh y retos de DSA en LeetCode. Hoy es el día 6.

Diseño de Sistemas Patrones de Disponibilidad

El tema de hoy trata sobre patrones de disponibilidad, técnicas para mantener los sistemas resilientes y en línea incluso cuando fallan componentes. La meta es que los servicios sigan respondiendo y que el tiempo de inactividad sea mínimo.

1 Redundancia

Varias instancias del servicio en paralelo. Modos comunes

Activo pasivo con conmutación por error cuando cae el primario. Activo activo con balanceo de carga en todas las réplicas. N mas 1 para capacidad adicional de seguridad. Consideraciones monitoreo, tiempo de conmutación, consistencia de datos.

2 Replicación

Mantener copias de datos en múltiples servidores. Sincrónica ofrece consistencia fuerte con mayor latencia. Asincrónica reduce latencia pero puede mostrar datos desactualizados.

3 Conmutación por error

Cambio automático a un servicio de respaldo cuando falla el primario. Cuidar escenarios de cerebro dividido, decidir entre automatizada o manual, y probarla de forma periódica.

4 Balanceo de carga

Distribuir solicitudes entre varios servidores. Algoritmos típicos round robin, menor número de conexiones, hash de IP. Mejora disponibilidad y rendimiento.

5 Cortacircuitos

Evitan fallos en cascada bloqueando el tráfico hacia servicios no saludables. Estados cerrado abierto medio abierto. Aumenta la resiliencia y facilita una recuperación gradual.

6 Mecanismos de reintento

Útiles ante fallos transitorios como problemas de red. Usar retroceso exponencial y jitter para evitar saturar. Garantizar que las operaciones sean idempotentes.

7 Limitación de tasa

Controlar el flujo de solicitudes para prevenir sobrecarga. Técnicas token bucket y leaky bucket. Protege de abuso, ataques de denegación y agotamiento de recursos.

8 Caché

Almacenar datos de acceso frecuente en medios rápidos. Tipos en cliente, en servidor, y CDN. Atención a invalidación y estrategias de expulsión.

9 Colas

Desacoplan productores y consumidores. Mejoran disponibilidad y escalabilidad. Tecnologías comunes RabbitMQ, Kafka, SQS.

10 Sharding de base de datos

Dividir una base de datos grande en fragmentos más pequeños. Mejora rendimiento y disponibilidad. Elegir bien la clave de partición y gestionar consultas entre fragmentos.

Mi reflexión

Estos patrones son la caja de herramientas de la resiliencia. Cada uno implica compromisos latencia frente a consistencia, rendimiento frente a costo, pero en conjunto permiten construir sistemas que no solo funcionan, sino que sobreviven a fallos reales.

DSA del día Roman to Integer

El reto de hoy es la versión inversa del de ayer 13 Roman to Integer en LeetCode. Tiempo invertido cerca de dos horas con desvíos pero muy provechoso.

Entendiendo el problema

Mapear cada símbolo romano a su valor I V X L C D M. Recorrer la cadena de izquierda a derecha. Si el valor actual es menor que el siguiente se resta. En caso contrario se suma. Con esto se obtiene el total en tiempo lineal y espacio constante.

Puntos clave

Un diccionario para consulta directa mantiene el código claro. Un bucle que compara elemento actual y siguiente simplifica la lógica. La solución simple gana en legibilidad y depuración frente a trucos compactos.

Conclusiones

En Diseño de Sistemas los patrones de disponibilidad refuerzan la importancia de la redundancia la conmutación por error y el balanceo para sistemas robustos. En DSA las cifras romanas muestran la elegancia de combinar mapeo y condiciones sencillas para lograr soluciones limpias.

Conectemos

Llevo seis días seguidos y quiero que estas publicaciones impulsen más aprendizaje y conversación. Qué patrón de disponibilidad has implementado en tu trabajo Prefieres convertir romano a entero o entero a romano Déjame tu opinión o un emoji para mantener el impulso.

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