An enterprise engineering reference for building federated spatial data products.
Domain-driven boundaries, product thinking for datasets, policy-driven routing, idempotent Python
orchestration, SLA monitoring, and governance — written for the teams who own the transition off
centralized GIS.
🌐 Read it live → www.geospatialdatamesh.org
Geospatial Data Mesh is a focused, deeply technical reference for the data architects, platform
engineers, and GIS data stewards who are decomposing a monolithic spatial estate into federated,
domain-aligned products. Every page documents a production trade-off — not a tutorial — with valid,
runnable code (ogr2ogr, opa eval, istioctl, kubectl, promtool, Prefect, Airflow, Dagster),
concrete coordinate-reference-system and contract conventions, and hand-authored diagrams that explain
the hardest concept on the page.
It is written for the people who own the migration: enterprise data architects designing the topology, platform engineers wiring the routing and observability, and GIS stewards accountable for each spatial product's contract, lifecycle, and service levels.
The material is organised into three complementary tracks, each anchored by an in-depth overview page:
Applying domain-driven design to spatial data: defining domain boundaries, treating datasets as owned products with explicit SLAs and machine-checked data contracts, cataloging raster and vector metadata, governing coordinate reference systems, and managing the full product lifecycle from experimental to archived.
The decentralized control plane: cross-domain routing and header-based selection, API-gateway mapping for GIS services, versioned schema contracts, async execution for heavy spatial queries, geocoding fallback chains, zero-trust security with mTLS, rate limiting, and event-driven domain sync protocols.
Keeping federated products operable: idempotent Python orchestration with Prefect, Airflow and Dagster, CRS reprojection and topology validation in the pipeline, SLA monitoring with Prometheus, autoscaling for tile-cache nodes, and distributed tracing across the mesh.
- Production trade-offs, not tutorials. Every page frames a real architectural decision — failure modes it prevents, the contract it enforces, and the diagnostic runbook when it breaks at 3 a.m.
- Runnable, valid code. Real tool invocations and syntactically correct Rego, YAML, SQL/PostGIS, and typed Python — with idempotency and zero-trust requirements called out explicitly.
- Custom diagrams. Every overview and guide carries an original, accessible inline SVG — architecture topologies, state machines, and decision matrices — with no stock art.
- Consistent conventions. Stable CRS identifiers (
EPSG:4326,EPSG:3857), a versioning scheme (v1.2.0-crs:EPSG:4326-res:10m), and OGC-aligned metadata run through every page. - Tight cross-linking. 50+ interlinked pages, so you are always one or two clicks from the related trade-off.
- Eleventy — static site generator
- KaTeX — math typesetting
- Prism — code syntax highlighting
- Hand-authored inline SVG diagrams and an offline-capable progressive-web-app shell
- Deployed on Cloudflare Workers
npm install # install dependencies
npm start # local dev server with live reload
npm run build # production build into _site/
npm run deploy # build and deploy to CloudflareIssues and pull requests that sharpen the technical accuracy, add a missing benchmark or config, or improve a diagram are welcome. Please keep the house style: concrete numbers, valid tool invocations, and one strong diagram over many weak ones.