Time To Live (TTL) es un campo o atributo numérico que especifica la duración máxima que un paquete de datos o un registro de información debe ser retenido o considerado válido antes de ser descartado o invalidado. En el contexto de redes, el TTL de un paquete IP se decrementa en cada salto (router) que atraviesa; si llega a cero, el paquete es descartado para evitar bucles infinitos. En sistemas de caché o bases de datos, el TTL define por cuánto tiempo un dato almacenado es considerado fresco, tras lo cual debe ser revalidado o eliminado.
El TTL se implementa ampliamente en diversos sistemas. En redes, el campo TTL en la cabecera IP es fundamental para prevenir que los paquetes circulen indefinidamente. Los servidores DNS utilizan TTLs para indicar a los resolvedores cuánto tiempo pueden cachear un registro antes de solicitar una nueva consulta, con valores que van desde segundos hasta días. Sistemas de caché distribuida como Redis o Memcached permiten asignar un TTL a cada clave-valor, gestionando automáticamente la expiración de los datos. Las CDNs también emplean TTLs para controlar la frescura del contenido en sus nodos de borde.
Para un arquitecto, el TTL es una herramienta crucial para gestionar la consistencia, la disponibilidad y la eficiencia de los recursos. Un TTL bajo mejora la frescura de los datos y la consistencia eventual, pero incrementa la carga en el origen y la latencia de acceso. Un TTL alto reduce la carga y mejora el rendimiento al servir datos desde caché, pero introduce una mayor probabilidad de servir datos obsoletos. La elección del TTL adecuado implica un trade-off entre la frescura de los datos y la eficiencia del sistema, debiendo alinearse con los requisitos de consistencia y rendimiento de la aplicación. Es vital considerar el impacto del TTL en la propagación de cambios y la resiliencia del sistema ante fallos del origen.