Skip to content

samidala/decission-orchestration

Repository files navigation

AI Decision Orchestration Service

A production-grade microservices orchestrator built with Go and React, focusing on Observability, Resilience, and Traceability.

🚀 Features

  • Centralized Logging (MDC-style): Context-aware logging using slog (automatically enriches logs with correlation_id and user_id).
  • Distributed Tracing: OpenTelemetry integration with Jaeger support.
  • Metrics: Prometheus metrics endpoint (/metrics) with custom vectors.
  • Resilience: Circuit Breakers, Retries, and Timeouts for all downstream calls.
  • Docker Ready: docker-compose setup for the entire stack.
  • Kubernetes Native: Helm charts for deployment on any cluster.

🛠️ Getting Started

Prerequisites

  • Go 1.23+
  • Docker & Docker Compose
  • Kind (for local Kubernetes)

Running with Docker Compose

docker-compose up --build

The API will be available at http://localhost:8080.

Running Locally

  1. Start the simulator: go run cmd/simulator/main.go
  2. Start the server: go run cmd/server/main.go

📊 Observability

  • Prometheus: http://localhost:9090
  • Jaeger UI: http://localhost:16686
  • Metrics: http://localhost:8080/metrics

🏗️ Architecture

The service follows a clean architecture pattern:

  • internal/api: HTTP Handlers
  • internal/orchestration: Core Decision Logic
  • internal/clients: Downstream microservice clients
  • internal/middleware: Resilience and Observability layers

☸️ Kubernetes

Deploy to a local Kind cluster:

kind create cluster --config kind-config.yaml
helm install orchestrator ./charts/orchestrator

📝 License

MIT

About

A production-grade microservices orchestrator built with Go and React, focusing on Observability, Resilience, and Traceability.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors