Finalmente, la coherencia significa que los cambios tardan en propagarse y que los datos pueden no estar en el mismo estado después de cada acción, incluso para acciones o transformaciones idénticas de los datos. Esto puede hacer que sucedan cosas muy malas cuando las personas no saben lo que están haciendo al interactuar con dicho sistema.
No implemente los almacenes de datos de documentos críticos del negocio hasta que comprenda bien este concepto. Arruinar la implementación de un almacén de datos de documentos es mucho más difícil de arreglar que un modelo relacional porque las cosas fundamentales que se arruinarán simplemente no se pueden arreglar, ya que las cosas que se requieren para arreglarlo simplemente no están presentes en el ecosistema. Refactorizar los datos de una tienda en vuelo también es mucho más difícil que las simples transformaciones ETL de un RDBMS.
No todos los almacenes de documentos son iguales. Algunos de estos días (MongoDB) admiten transacciones de algún tipo, pero la migración de los almacenes de datos es probablemente comparable al costo de la reimplementación.
ADVERTENCIA: Desarrolladores e incluso arquitectos que no conocen o entienden la tecnología de un almacén de datos de documentos y tienen miedo de admitir que por miedo a perder sus trabajos pero que han recibido una formación clásica en RDBMS y que solo conocen los sistemas ACID (cuán diferente puede ser ?) y quien no conoce la tecnología o se toma el tiempo de aprenderla, perderá el diseño de un almacén de datos de documentos. También pueden intentar usarlo como RDBMS o para cosas como el almacenamiento en caché. Desglosarán lo que deberían ser transacciones atómicas que deberían operar en un documento completo en partes "relacionales", olvidando que la replicación y la latencia son cosas, o peor aún, arrastrando sistemas de terceros a una "transacción". Harán esto para que su RDBMS pueda reflejar su lago de datos, sin importar si funcionará o no, y sin pruebas, porque saben lo que están haciendo. Entonces actuarán sorprendidos cuando los objetos complejos almacenados en documentos separados como "pedidos" tengan menos "artículos de pedido" de lo esperado, o tal vez ninguno. Pero no sucederá con frecuencia, o con la frecuencia suficiente para que simplemente marchen hacia adelante. Puede que ni siquiera lleguen al problema en el desarrollo. Luego, en lugar de rediseñar las cosas, lanzarán "retrasos" y "reintentos" y "comprobaciones" para falsificar un modelo de datos relacionales, que no funcionará, pero agregarán complejidad adicional sin ningún beneficio. Pero ya es demasiado tarde: la cosa se ha implementado y ahora el negocio se está ejecutando. Eventualmente, todo el sistema será eliminado y el departamento será subcontratado y alguien más lo mantendrá. Todavía no funcionará correctamente, pero pueden fallar de manera menos costosa que la falla actual.