KnowWhereGraph's networking and service architecture
KnowWhereGraph follows a Monolith reference design pattern. The components are tightly coupled and are all deployed together.
The diagram below shows the services and static sites behind NGINX. The observability services are a bit noisy.
NGINX serves as the load balancer and reverse proxy to internal services. Several static sites are served directly by NGINX. These include the ontology description pages, the faceted search, the Node Browser, and void description file.
Services within the Docker network use container hostnames. For example, the API is referenced by kwg-api:8080.
The observability stack consists of
- Loki: Log aggregation
- Metric Exporters: Exports service metrics from various services (api, elasticsearch, etc) to Prometheus
- Prometheus: Stores the metrics
- Grafana: For viewing/searching logs, live metrics, alerting
