Skip to content

Maven Dependencies & Architectural Rationale

This document provides a technical inventory of all Maven dependencies managed in pom.xml across the Tuluat reactor (tuluat-parent, tuluat-crd-domain, tuluat-guardrails, tuluat-protocols, tuluat-engine, tuluat-operator, and tuluat-app).


1. Parent Managed BOMs (pom.xml)

Java & Spring Runtime Baseline

  • Java Version: 25 LTS (Virtual Threads enabled via --enable-preview).
  • Spring Boot: 4.1.0-SNAPSHOT (Spring Framework 7 runtime baseline).

Parent Bill of Materials (BOM) Imports

<properties>
    <java.version>25</java.version>
    <spring-ai.version>2.0.0-SNAPSHOT</spring-ai.version>
    <josdk.version>5.1.0</josdk.version>
    <fabric8.version>7.3.1</fabric8.version>
    <temporal.version>1.27.0</temporal.version>
</properties>
Group ID & Artifact ID Version Purpose & Architectural Rationale
io.fabric8:kubernetes-client-bom 7.3.1 Kubernetes Java Client BOM. Guarantees version consistency across Fabric8 Kubernetes Client modules, Jackson model serializers, and mock server testing.
org.springframework.ai:spring-ai-bom 2.0.0-SNAPSHOT Spring AI 2.0 Engine BOM. Centralizes version alignment for LLM model abstraction, chat models (OpenAI, Ollama, DeepSeek), vector stores, and prompt templates.
io.javaoperatorsdk:operator-framework-bom 5.1.0 Java Operator SDK (JOSDK) BOM. Manages reconciler lifecycle, event sources, controller execution threads, and CRD status update engines.
io.temporal:temporal-sdk 1.27.0 Temporal Java SDK. Provides stateful durable workflow execution, activities, timer cancellation, and human-in-the-loop signal handling (WAITING_APPROVAL).

2. Module Dependency Breakdown

tuluat-crd-domain

<dependencies>
    <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>kubernetes-client-api</artifactId>
    </dependency>
    <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>kubernetes-model-core</artifactId>
    </dependency>
    <dependency>
        <groupId>io.javaoperatorsdk</groupId>
        <artifactId>operator-framework-core</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
    </dependency>
</dependencies>

tuluat-guardrails

<dependencies>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-crd-domain</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>com.networknt</groupId>
        <artifactId>json-schema-validator</artifactId>
        <version>1.5.5</version>
    </dependency>
</dependencies>

tuluat-protocols

<dependencies>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-crd-domain</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
</dependencies>

tuluat-engine

<dependencies>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-crd-domain</artifactId>
    </dependency>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-guardrails</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-starter-model-openai</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-starter-model-ollama</artifactId>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>io.temporal</groupId>
        <artifactId>temporal-sdk</artifactId>
    </dependency>
    <dependency>
        <groupId>io.minio</groupId>
        <artifactId>minio</artifactId>
        <version>8.5.12</version>
    </dependency>
</dependencies>

tuluat-operator

<dependencies>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-crd-domain</artifactId>
    </dependency>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-protocols</artifactId>
    </dependency>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-engine</artifactId>
    </dependency>
    <dependency>
        <groupId>io.javaoperatorsdk</groupId>
        <artifactId>operator-framework-spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>kubernetes-client</artifactId>
    </dependency>
    <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>kubernetes-server-mock</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.javaoperatorsdk</groupId>
        <artifactId>operator-framework-junit-5</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

tuluat-app

<dependencies>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-crd-domain</artifactId>
    </dependency>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-engine</artifactId>
    </dependency>
    <dependency>
        <groupId>com.tuluat</groupId>
        <artifactId>tuluat-operator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>