Skip to content

2. Constraints

Technical

Constraint Detail
Platform Kubernetes (no specific distribution mandated); the number of GeoServer replicas is driven by ops (kubectl scale, k9s, Rancher…)
Clustering At least 3 replicas, variable count; no configuration based on fixed IP addresses
Configuration persistence Database rather than file system: JDBCConfig, JDBCStore, JDBCStatus plugins
Database access A JNDI resource declared in Tomcat; URL, user and password injected through environment variables / Secrets
Database TimescaleDB with the PostGIS extension; dedicated GeoServer schema with a dedicated user and a configured search_path (the GeoServer schema is not the only schema in the database)
Object storage S3 (or compatible) for the GeoWebCache tile cache and for rasters
GeoServer extensions WPS mandatory; S3 GWC and S3 raster plugins; in-house plugins (configuration initialization, WPS interpolation process) built and embedded in the image
Administration UI Usable in a cluster: UI user sessions must survive routing across replicas (affinity or session replication)
Best practices Follow the official "GeoServer in production" recommendations
Dimensions Every piece of data carries at least a temporal and/or vertical dimension in addition to space; these dimensions must be exposed by the OGC services (TIME, ELEVATION, custom dimensions)
Client navigation Client applications must navigate through time and altitude across all layers, including area messages whose temporal dimension is a validity interval (AIRMET/SIGMET/GAMET, TAF)
Raster palettes Palettes must be applicable to rasters at request time (named styles and/or SLD env() substitution) — future work item
Data lifetime A retention mechanism is expected, but the owner of the retention decision is not identified yet — record, do not invent policies
Units of measurement A measurement always has a unit. The same quantity may arrive in different units depending on the source (temperature in kelvin or degrees Celsius, pressure in Pa or hPa, wind in m/s or knots). The unit must be known, stored with the data, and kept under control all the way to rendering and service outputs

Organizational

  • Documentation in English, structured following arc42, maintained together with the code.
  • Every technical chapter is validated by a prototype before it is written.

Conventions

  • Generic naming of components (geoserver, db, s3, ingestion).
  • One structuring decision = one ADR.