Editorial illustration in metal-engraving style depicting an NDJSON ingestion monitoring dashboard with throughput, error rate, batch, and ETA panels
July 16, 2026
Monitoring the Ingestion of an NDJSON Batch

An NDJSON batch that ingests silently for four hours and then dies at row 3.7 million is a bad on-call experience. Monitoring is what turns that opaque failure into a graph, an alert, and an actionable metric. Every ingestion pipeline...

Read More
Editorial illustration in metal-engraving style depicting gzip, zstd, and xz compression compared on NDJSON with ratio and speed axes
July 16, 2026
Compression Choices for NDJSON Delivery

An uncompressed NDJSON export is a lot of JSON. Bulk exports for a mid-size health plan run in the tens of gigabytes uncompressed. Compression reduces both delivery bandwidth and storage, and the choice of compression algorithm matters...

Read More
Editorial illustration in metal-engraving style depicting a mixed-resource NDJSON stream dispatched to type-specific handlers with an id index
July 15, 2026
Handling Mixed-Resource NDJSON in a $export

FHIR $export usually delivers one NDJSON file per resource type — Patient.ndjson, Observation.ndjson, and so on. Sometimes the spec-compliant output mixes resource types in a single file. Handling that case is a specific dispatch pattern...

Read More
Editorial illustration in metal-engraving style depicting NDJSON corruption categories with per-line independence and summary report
July 15, 2026
Detecting Corruption in a Large NDJSON Stream

Corruption in an NDJSON stream is rarely announced. The file downloads cleanly, the checksum matches, and the pipeline chugs happily until row 4.2 million turns out to be malformed and everything past it silently misinterprets. Building...

Read More
Editorial illustration in metal-engraving style depicting an NDJSON sample check with head, tail, type tally, and malformed-line report
July 14, 2026
Sampling an NDJSON to Sanity-Check the Export

A fresh $export lands in a bucket. Before running it through the ingestion pipeline, a five-second sanity check saves the hour of debugging you would otherwise do when the whole pipeline runs on a bad export. That check is a small NDJSON...

Read More
Editorial illustration in metal-engraving style depicting an NDJSON ingestion pipeline with read, validate, batch, and bulk-insert stages
July 14, 2026
Streaming an NDJSON File Into a Database

Streaming an NDJSON file into a database is the ingestion path for every real bulk-data pipeline. The naïve "load the file, insert row by row" approach hits memory ceilings on large exports. The naïve "insert every row in its own...

Read More
Editorial illustration in metal-engraving style depicting an NDJSON file with each line marked as a complete JSON value
July 13, 2026
The NDJSON Format and Why Bulk Data Uses It

FHIR could have picked a Bundle-shaped export. It didn't. The bulk-data specification picked NDJSON — newline-delimited JSON — as the wire format for $export. That choice was deliberate, and understanding it is what makes bulk-data...

Read More
Editorial illustration in metal-engraving style depicting an NDJSON file being read line-by-line with a small memory window
July 13, 2026
Reading an NDJSON Export Without Loading the Whole File

The first NDJSON file from a FHIR $export lands on a developer's laptop and the reflex is to open it in a text editor. Ten seconds later the editor locks up because the file is 800 MB. Reading NDJSON without loading the whole file is the...

Read More