# Documentation for Kamiwaza 0.7.0

This document provides a high-level overview of its key architectural components and the technologies that power them.

## System Architecture Diagram

The diagram below illustrates the layered architecture of the Kamiwaza platform, from the underlying infrastructure to the user-facing applications. Each layer provides a distinct set of capabilities, creating a robust and maintainable system.

### Consumes

### Built On

### Runs On

| Layer                                 | Technologies                                |
|---------------------------------------|---------------------------------------------|
| Orchestration & Compute Foundation    | Ray Serve, Docker Swarm, Hardware / Cloud  |
| Core Infrastructure Services           | Traefik Router, CockroachDB, etcd Cluster  |
| Kamiwaza Services Layer               | Microservices, Authentication, Model Repository, Model Serving, Vector Databases, Data Catalog, FastAPI Gateway |
| Application Layer                     | Kamiwaza Frontend, Client SDK, App Garden   |

## Architecture Layers

### 🌐 Application Layer

This is where users and developers interact with Kamiwaza.

- **Kamiwaza Frontend**: The primary web-based user interface for managing the platform.
- **Client SDK**: A Python SDK for programmatically interacting with Kamiwaza's APIs.
- **App Garden**: A platform for discovering and deploying pre-packaged AI applications and services.

### 🎯 Kamiwaza Services Layer

The core business logic of the platform, exposed via a central API gateway.

- **FastAPI Gateway**: A high-performance API gateway that coordinates all requests.
- **Microservices**: A suite of specialized services handling concerns like Authentication, Model Management, Vector DB abstraction (Milvus, Qdrant), and more.

### 🛠️ Core Infrastructure Services

The essential backend services that support the entire platform.

- **Traefik Router**: A powerful reverse proxy and load balancer that manages all inbound network traffic and provides SSL termination.
- **CockroachDB**: The primary database—a distributed, resilient SQL database for all application data.
- **etcd**: A distributed key-value store used for service discovery and critical configuration management across the cluster.

### 🔧 Orchestration & Compute Foundation

The base layer that provides the compute resources and orchestration to run everything else.

- **Ray Serve**: A scalable model-serving framework used for deploying and managing AI models.
- **Docker Swarm**: The container orchestration engine that manages the lifecycle of all containerized services.
- **Hardware / Cloud**: The physical servers or cloud instances (e.g., AWS, GCP, Azure) that provide the underlying CPU and GPU resources.

## Technology Stack

| Category   | Technologies                                                  |
|------------|--------------------------------------------------------------|
| **Backend**| Python 3.10, FastAPI, Ray, SQLAlchemy, Pydantic              |
| **Frontend**| React 18, Material-UI, Tailwind CSS, Axios                  |
| **Databases**| CockroachDB, Milvus, Qdrant, etcd                            |
| **Infrastructure**| Docker Swarm, Traefik, DataHub, JupyterHub                 |
