Vision — a GeoServer 3 platform, simple by construction, durable by design¶
Executive summary of the architecture documented on this site. Every claim below links to the decision record (ADR) or the step-by-step guide where it is demonstrated by a runnable prototype — nothing here is theoretical.
The goal¶
One platform serving meteorological, aeronautical and hydrological data — model fields, satellite and radar imagery, decoded messages (SYNOP, METAR, TAF, SIGMET…), lightning, hydrology — through open OGC standards (WMS, WMTS, WFS, WCS, WPS), with clients free to navigate through time and altitude, and with units treated as first-class data: a measurement always has a unit (ADR-0003).
Why GeoServer 3 now¶
- GeoServer 3.0.x is the current stable line (Tomcat 11, Jakarta EE, Spring 6, Java 17/21). The 2.28 maintenance line reaches end of life in 2027: starting a new platform on 2.x means paying the Jakarta migration within a year — starting on 3.x avoids migrating twice.
- Every module this architecture needs is published for 3.0.1 (catalog and resources in a database, clustering, S3 tile cache, COG, WPS, control-flow) — verified, not assumed, and exercised by the prototypes (guide 2).
- The risk of a young major version is contained by this project's method: each capability was proven on a disposable test bench before being documented, and the pitfalls found are recorded in the guides.
Simple by construction¶
1. Nobody configures anything by hand. A small in-house plugin configures GeoServer at startup from declarative Kubernetes ConfigMaps: workspaces, datasources, mosaics, observation layers, basemaps, styles, tile caching (ADR-0006). Adding a weather mosaic or an observation layer is one line in a ConfigMap — no UI clicks, no REST scripts, nothing to remember (guide 5, guide 6).
2. Servers are cattle, not pets. A GeoServer pod owns no durable state: its data directory is rebuilt at every start and the database is the single source of truth — catalog, resources, styles, security, even the master key (ADR-0005). Replicas discover each other by DNS with no fixed addresses (ADR-0008); operations scale the cluster with a single command. Measured on the bench: configuration changes propagate in 3 s, scaling 3→5→2 serves zero errors, a full cold start converges in under a minute (guide 3).
3. One pattern per data family — and only one.
| Family | Pattern | Proof |
|---|---|---|
| Model fields, imagery | COG on S3, PostGIS-indexed ImageMosaic, TIME / ELEVATION / run dimensions | guide 5 |
| Decoded observations | TimescaleDB hypertable + one SQL view per layer, TIME-enabled | guide 6 |
| Tiles | Shared S3 blobstore (cache survives any pod) | guide 4 |
| Basemaps | Hosted public-domain data first, cascaded WMS as a complement | guide 7 |
| Derived fields | In-house WPS / rendering transformations | guide 8 |
New data arrives by inserting rows and objects — never by reconfiguring servers: layers pick it up immediately, with no restart and no notification bus (ADR-0010).
Durable by design¶
- Open standards end to end: OGC services out; COG, CF conventions and WMO code tables in (ADR-0003, ADR-0009) — no proprietary formats, no lock-in, clients replaceable.
- Reproducible artifacts: the server image is built from pinned, released components; nothing is downloaded at runtime; community modules are resolved as versioned bundles (ADR-0007).
- Decisions are written down: 13 architecture decision records with context, rejected alternatives and consequences (decision log) — the "why" survives the people.
- Failures are loud: a missing precondition stops a component in seconds with an explicit message — never a silent fallback (measured: bad discovery DNS or unreachable S3 abort in 3 s).
- Everything is retestable: each guide ends with a runnable verification suite; the platform can be rebuilt from an empty cluster and re-proven at any time.
Where this stands, and what comes next¶
The eight foundation blocks are built, tested and documented on this site (database, server image, clustering, S3 storage, ingestion, observations, basemaps, processing — see the home page status table). The open items are listed honestly in Risks and technical debt: validity-interval time for area messages (SIGMET/AIRMET/GAMET, TAF), request-time raster palettes, observability, real GTS decoders, retention governance, and the workspace layout decision (ADR-0002) to be made against the real data inventory.