Técnicamente, un 'tombstone' es un registro o metadato especial que se inserta en un sistema de almacenamiento cuando un dato es 'eliminado'. En lugar de borrar físicamente el dato de inmediato, el 'tombstone' actúa como un marcador de borrado. Este marcador contiene típicamente la clave del dato eliminado y un timestamp que indica cuándo se marcó para eliminación. Su propósito principal es propagar la intención de borrado a través de un sistema distribuido, asegurando que todas las réplicas o nodos eventualmente reconozcan y procesen la eliminación, incluso en presencia de inconsistencias temporales o particiones de red. Una vez que el 'tombstone' ha sido procesado por todos los componentes relevantes y ha expirado su período de retención, el dato subyacente y el 'tombstone' pueden ser eliminados físicamente (garbage collected).

La implementación de 'tombstones' es común en una variedad de sistemas distribuidos y bases de datos NoSQL. Por ejemplo, Apache Cassandra utiliza 'tombstones' (conocidos como 'delete markers') para manejar las eliminaciones de datos. Cuando se ejecuta una operación DELETE, Cassandra no elimina los datos inmediatamente, sino que escribe un 'tombstone' con un timestamp. Durante las operaciones de 'compaction', los 'tombstones' se utilizan para eliminar físicamente los datos antiguos y, después de un período configurable (gc_grace_seconds), los propios 'tombstones' son eliminados. De manera similar, sistemas de almacenamiento de objetos como Amazon S3 emplean un concepto similar para la eliminación de versiones de objetos, donde una 'delete marker' actúa como un 'tombstone' lógico. También se encuentran en sistemas de replicación de bases de datos relacionales y en algunos sistemas de archivos distribuidos para gestionar la coherencia de borrados.

Para un Arquitecto de Sistemas, comprender los 'tombstones' es crucial debido a sus implicaciones en la consistencia, el rendimiento y el uso de recursos. La presencia de 'tombstones' introduce un trade-off: garantizan la consistencia eventual de las eliminaciones en entornos distribuidos, pero a cambio, consumen espacio de almacenamiento adicional y pueden impactar el rendimiento de lectura y escritura si no se gestionan adecuadamente (por ejemplo, un exceso de 'tombstones' puede ralentizar las 'compactions' o requerir más memoria). Un diseño deficiente de la política de 'garbage collection' de 'tombstones' puede llevar a problemas como 'resurrección' de datos (si un 'tombstone' expira antes de que todas las réplicas lo vean) o a un crecimiento descontrolado del espacio en disco. Los arquitectos deben configurar cuidadosamente parámetros como el tiempo de vida de los 'tombstones' (TTL) y las estrategias de 'compaction' para equilibrar la durabilidad de las eliminaciones, la latencia y la eficiencia del almacenamiento, especialmente en sistemas con altas tasas de escritura y eliminación.