Class ModuleRepository

java.lang.Object
ai.pipestream.registration.repository.ModuleRepository

@ApplicationScoped public class ModuleRepository extends Object
Repository for managing service module registrations in PostgreSQL. This is the primary data store (system of record).
  • Constructor Details

    • ModuleRepository

      public ModuleRepository()
  • Method Details

    • registerModule

      public io.smallrye.mutiny.Uni<ServiceModule> registerModule(String serviceName, String host, int port, String version, Map<String,Object> metadata, String jsonSchema)
      Register a new service module with optional schema Updates existing module if it already exists
    • saveSchema

      public io.smallrye.mutiny.Uni<ConfigSchema> saveSchema(String serviceName, String version, String jsonSchema)
      Save a configuration schema (dual storage: PostgreSQL + Apicurio)
    • updateHeartbeat

      public io.smallrye.mutiny.Uni<ServiceModule> updateHeartbeat(String serviceId)
      Update heartbeat for a service
    • markUnhealthy

      public io.smallrye.mutiny.Uni<ServiceModule> markUnhealthy(String serviceId)
      Mark service as unhealthy
    • unregisterModule

      public io.smallrye.mutiny.Uni<Boolean> unregisterModule(String serviceId)
      Unregister a service
    • getActiveServices

      public io.smallrye.mutiny.Uni<List<ServiceModule>> getActiveServices()
      Get all active services
    • getAllServices

      public io.smallrye.mutiny.Uni<List<ServiceModule>> getAllServices()
      Get all services (for admin dashboard)
    • findStaleServices

      public io.smallrye.mutiny.Uni<List<ServiceModule>> findStaleServices()
      Find stale services (no heartbeat for > 30 seconds)
    • findById

      public io.smallrye.mutiny.Uni<ServiceModule> findById(String serviceId)
      Get service by ID
    • findSchemaById

      public io.smallrye.mutiny.Uni<ConfigSchema> findSchemaById(String schemaId)
      Get schema by ID
    • findLatestSchemaByServiceName

      public io.smallrye.mutiny.Uni<ConfigSchema> findLatestSchemaByServiceName(String serviceName)
      Get latest schema for a service (most recently created)
    • findSchemaVersionsByServiceName

      public io.smallrye.mutiny.Uni<List<ConfigSchema>> findSchemaVersionsByServiceName(String serviceName)
      Get all schema versions for a service name, ordered by version descending
    • findSchemasNeedingSync

      public io.smallrye.mutiny.Uni<List<ConfigSchema>> findSchemasNeedingSync()
      Get all schemas needing sync to Apicurio
    • countServicesByStatus

      public io.smallrye.mutiny.Uni<Map<ServiceStatus,Long>> countServicesByStatus()
      Count registered services by status