NDJSON, o Newline Delimited JSON, es un formato de datos que consiste en una secuencia de objetos JSON válidos, cada uno en su propia línea y separado por un carácter de nueva línea (U+000A 'LF'). A diferencia de un array JSON tradicional, donde todos los objetos están encapsulados dentro de corchetes y separados por comas, NDJSON no requiere un delimitador global ni una estructura de array. Cada línea es un documento JSON completo y autocontenido, lo que permite procesar el flujo de datos de forma incremental y eficiente, sin necesidad de cargar todo el conjunto de datos en memoria.
NDJSON es ampliamente utilizado en escenarios donde los datos se transmiten o almacenan como un flujo continuo, como en el streaming de logs, exportaciones de bases de datos o APIs que devuelven grandes conjuntos de resultados. Herramientas y sistemas como Elasticsearch (para bulk indexing), Apache Kafka (cuando se serializan mensajes JSON), y muchas herramientas de línea de comandos (CLI) que procesan datos JSON de forma incremental, lo emplean. Por ejemplo, la API de 'Bulk' de Elasticsearch acepta NDJSON para indexar múltiples documentos en una sola solicitud, y herramientas como 'jq' pueden procesar flujos NDJSON línea por línea.
Para un arquitecto, NDJSON es crucial por su eficiencia en el manejo de grandes volúmenes de datos y su idoneidad para el procesamiento de flujos. Permite el procesamiento 'line-by-line', lo que reduce significativamente el uso de memoria y la latencia en comparación con la carga de un array JSON completo. Esto es vital para sistemas de logging, ETL (Extract, Transform, Load) y APIs de streaming. Sin embargo, su naturaleza de 'línea por línea' significa que no hay un 'root' común para el documento, y la validación de la integridad del conjunto de datos completo debe hacerse a nivel de aplicación. La elección de NDJSON frente a un array JSON o formatos binarios como Avro o Parquet depende de los trade-offs entre legibilidad humana, eficiencia de procesamiento de flujo, y la necesidad de esquemas o compresión avanzada.