Skip to content

Add Belgium Waterinfo VMM water level bridge#95

Merged
clemensv merged 2 commits intomainfrom
feature/waterinfo-flanders
Mar 26, 2026
Merged

Add Belgium Waterinfo VMM water level bridge#95
clemensv merged 2 commits intomainfrom
feature/waterinfo-flanders

Conversation

@clemensv
Copy link
Copy Markdown
Owner

Belgium Waterinfo VMM Water Level Bridge

Streams real-time water level data from the Belgian Waterinfo.be KIWIS API (VMM provider) to Apache Kafka via CloudEvents.

Data Sources

  • Stations (~1,785): All VMM monitoring stations across Flanders/Belgium
  • Water Level 15-min (~1,109 time series): Real-time water level (H) in meters

Architecture

  • Namespace: BE.Vlaanderen.Waterinfo.VMM
  • Protocol: KISTERS KIWIS QueryServices (getTimeseriesValueLayer for bulk latest values)
  • Polls every 15 minutes with change detection
  • Sends station reference data as CloudEvents at startup
  • No authentication required for standard polling

Tests

  • 19 unit tests (data models, initialization, connection string parsing, KIWIS config)
  • 9 e2e tests (real API verification: stations, value layer, coordinates, timeseries, groups)
  • 3 container tests (KafkaContainer with mocked and live API variants)
  • All 31 tests pass

Files

  • 28 files, 1,429 lines added
  • Complete project: xreg schema, data models, producer client, main poller, CLI entry point
  • Docker + Azure Event Hubs deployment support
  • Full documentation (README, EVENTS, CONTAINER)

Clemens Vasters added 2 commits March 25, 2026 11:50
Streams real-time water level data from the Belgian Waterinfo.be KIWIS API
(VMM provider) to Apache Kafka via CloudEvents.

Covers ~1,109 water level stations across Flanders (15-minute intervals)
via the getTimeseriesValueLayer API. Sends ~1,785 station reference
entities as CloudEvents at startup, then polls water level values every
15 minutes with change detection.

Uses the KISTERS KIWIS QueryServices protocol with VMM datasource.

Includes 31 tests: 19 unit, 9 e2e (real API), 3 container
(KafkaContainer with both mocked and live API variants).
@clemensv clemensv merged commit 3d28780 into main Mar 26, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant