Skip to content

5. Building block view

5.1 Database (sub-project 1)

Responsibility Host the GeoServer configuration schema (catalog, resources, WPS statuses) and the data schemas of the producing services
Ours geoserver role and schema, search_path, reader roles on the data schemas, initialization Jobs
Operator's PostgreSQL/TimescaleDB instance, PostGIS extension if the provided account is not superuser, backups, high availability
Interfaces JDBC via JNDI (jdbc/geoserver, jdbc/<data>); SQL via psql for the Jobs
Artifacts poc/01-database/, guide 1, ADR-0004

5.2 GeoServer image (sub-project 2)

Responsibility Serve the OGC services; load its entire configuration from the database; initialize the catalog through code
Contents Official GeoServer 3.0.1 + wps, wps-jdbc, gwc-s3, control-flow, gs-jdbcconfig, gs-jdbcstore, geoserver-init plugin, JNDI server.xml, bootstrap-datadir.sh
Interfaces HTTP 8080 (OGC, REST, UI); JNDI jdbc/geoserver (R/W) and jdbc/meteo (R)
Local state Nothing durable: emptyDir data dir regenerated at boot
Artifacts poc/02-geoserver-image/, guide 2, ADR-0005, ADR-0006

5.3 Cluster (sub-project 3)

Responsibility Make N replicas operate as a single GeoServer: change propagation, IP-free discovery, UI sessions, shared WPS
Contents gs-hz-cluster module (Maven bundle), headless Service geoserver-hz, affinity-enabled Ingress, WPS RWX PVC, PDB, geoserver-cluster-env ConfigMap
Interfaces Hazelcast 5701 between pods; HTTP 8080 via Service/Ingress
Artifacts poc/03-clustering/, guide 3, ADR-0008

5.4 S3 object storage (sub-project 4)

Responsibility Shared tile cache (gwc-tiles bucket) and COG rasters (rasters bucket)
Ours Default S3 blobstore and COG stores created by the plugin; COG production (ingestion)
Operator's S3-compatible service, buckets, credentials, retention
Interfaces S3 API (path-style) from the pods; gwc-s3 and S3 RangeReader (IIO_S3_AWS_*)
Artifacts poc/04-s3/, guide 4, ADR-0009

5.5 Ingestion service and mosaics (sub-project 5)

Responsibility Produce the COGs on S3, maintain the granule index and the quantity reference table, create the mosaic views
Contents Python + GDAL container (ingest.py), mosaic schema, Jobs; on the GeoServer side: plugin (MOSAICS)
Interfaces S3 (write), SQL (ingestion account); GeoServer reads the index through jdbc/meteo and the COGs through range reads
Artifacts poc/05-ingestion/, guide 5, ADR-0010

5.6 Decoded observations (sub-project 6)

Responsibility Store decoded surface observations (canonical unit, source unit kept) and expose them as time-qualified layers
Contents Schema obs (station, observation hypertable, publication views), decoder simulator, VECTOR_LAYERS plugin publication
Interfaces SQL (decoder account, write); jdbc/meteo (GeoServer, read-only); WMS TIME / WFS / CQL
Artifacts poc/06-vector/, guide 6, ADR-0011

5.7 Basemaps (sub-project 7)

Responsibility Background layers: hosted reference data (Natural Earth) and optional cascaded external WMS, both S3-tile-cached
Contents Schema basemap + ogr2ogr load Job; plugin: per-schema datastore, code-managed SLD style, WMSStore cascade
Interfaces SQL (basemap role, load); jdbc/meteo (read); external WMS (cascade); WMS/WMTS out
Artifacts poc/07-basemaps/, guide 7, ADR-0012

5.8 Processing (sub-project 8)

Responsibility Turn point observations into continuous fields; host the in-house processes
Contents meteo-wps module (meteo:IDWInterpolation, WPS + rendering transformation), obs-idw-temperature style, sparse-interpolation study
Interfaces WPS Execute; SLD <Transformation> on observation layers
Artifacts poc/08-processing/, poc/02-geoserver-image/meteo-wps/, guide 8, ADR-0013
Future work Production first-guess + corrections process combining mosaics and observations (ADR-0013)