Skip to content

Package Boundaries

This document defines dependency direction between HestiaStore packages so the core remains lightweight and integration layers can evolve independently.

Target package roles

  • org.hestiastore.index.*
    Core storage/index engine and public data APIs.
  • org.hestiastore.monitoring.json.api.*
    Shared monitoring/management REST JSON contracts.
  • org.hestiastore.monitoring.micrometer.*
    Micrometer integration layer.
  • org.hestiastore.monitoring.prometheus.*
    Prometheus integration layer.
  • org.hestiastore.management.restjson.*
    Node-local management endpoints running in index JVM.
  • org.hestiastore.console.web.*
    Central web console/control-plane UI.

Allowed dependency direction

index <- monitoring bridges
index + monitoring REST/JSON API contracts <- management REST/JSON bridge
management REST/JSON bridge <- console web (HTTP)

Rules:

  • Core must not import:
  • org.hestiastore.monitoring.*
  • org.hestiastore.management.*
  • org.hestiastore.console.*
  • Monitoring must use only public core APIs (no package-private internals).
  • Management/console REST JSON communication must reuse contracts from org.hestiastore.monitoring.json.api.* and avoid duplicate DTO definitions.

Enforcement

The test PackageDependencyBoundaryTest enforces that core source files do not import monitoring, management, or console packages.

This test is intentionally source-level and lightweight so it can run without additional architecture tooling.