Technology Stack Overview
The MATIH Platform is built on a carefully selected set of open-source and cloud-native technologies. Every technology choice is guided by three principles: cloud-agnosticism (no proprietary cloud service lock-in), Kubernetes-native deployment, and production readiness. This section documents every technology in the platform, organized by layer.
Stack at a Glance
| Layer | Technologies |
|---|---|
| Backend | Java 21, Spring Boot 3.2, Python 3.11, FastAPI, Node.js 20, Express |
| Frontend | React 18, TypeScript, Vite, TailwindCSS, Zustand |
| Data Infrastructure | PostgreSQL 16, Redis 7, Kafka (Strimzi), Elasticsearch 8.11, MinIO |
| ML and AI | MLflow, Ray, vLLM, LangGraph, Qdrant, Feast, Triton |
| Orchestration and IaC | Kubernetes 1.29+, Helm 3.14+, Terraform, cert-manager, ArgoCD |
| Compute Engines | Trino, ClickHouse, StarRocks, Apache Spark, Apache Flink |
Selection Criteria
Technologies are selected based on the following criteria:
| Criterion | Requirement |
|---|---|
| Open-source | Prefer Apache 2.0, MIT, or similarly permissive licenses |
| Kubernetes-native | Must run on Kubernetes with Helm chart or Operator support |
| Cloud-agnostic | No dependency on any single cloud provider |
| Production-proven | Used in production by multiple large organizations |
| Active community | Regular releases, responsive maintainers, active contributor base |
| Multi-tenancy compatible | Supports tenant isolation at the application or infrastructure level |
Technology Versions
Backend
| Technology | Version | Purpose |
|---|---|---|
| Java | 21 (LTS) | Control Plane and Data Plane Java services |
| Spring Boot | 3.2 | Application framework for all Java services |
| Python | 3.11 | AI, ML, and data quality services |
| FastAPI | Latest | Async web framework for Python services |
| Node.js | 20 (LTS) | Render service |
| Express | Latest | Web framework for Node.js services |
Data
| Technology | Version | Purpose |
|---|---|---|
| PostgreSQL | 16 | Primary relational database |
| Redis | 7 | Caching, sessions, pub/sub |
| Apache Kafka | Strimzi 0.38+ | Event streaming |
| Elasticsearch | 8.11 | Full-text search, audit logs |
| MinIO | Latest | S3-compatible object storage |
Compute
| Technology | Version | Purpose |
|---|---|---|
| Trino | Latest | Federated SQL query engine |
| ClickHouse | Latest | OLAP analytical engine |
| Apache Spark | 3.5 | Batch data processing |
| Apache Flink | 1.18+ | Stream processing |
| Ray | 2.9+ | Distributed ML compute |
Infrastructure
| Technology | Version | Purpose |
|---|---|---|
| Kubernetes | 1.29+ | Container orchestration |
| Helm | 3.14+ | Package management |
| Terraform | 1.6+ | Infrastructure as code |
| cert-manager | Latest | TLS certificate management |
| NGINX Ingress | Latest | Per-tenant ingress controller |
| External Secrets Operator | Latest | Secret synchronization |
| Prometheus | Latest | Metrics collection |
| Grafana | Latest | Monitoring dashboards |
Polyglot Architecture
The platform uses three programming languages, each selected for its strengths:
| Language | Services | Rationale |
|---|---|---|
| Java 21 | Control Plane (all 10), Query Engine, Catalog, BI, Pipeline, Semantic Layer | Strong typing, mature ecosystem, excellent Spring Boot support, Hibernate multi-tenancy |
| Python 3.11 | AI Service, ML Service, Data Quality, Governance, Ontology, Ops Agent | ML/AI ecosystem (LangChain, Ray, scikit-learn), FastAPI async performance |
| Node.js 20 | Render Service | Chart rendering libraries (D3.js, Chart.js), PDF generation |
Commons Libraries
Shared functionality is extracted into four commons libraries:
| Library | Language | Key Modules |
|---|---|---|
commons-java | Java | Security, multi-tenancy, persistence, caching, event streaming, observability |
commons-python | Python | Authentication middleware, tenant context, structured logging |
commons-typescript | TypeScript | API client utilities, authentication hooks, shared UI components |
commons-ai | Python | LLM abstractions, prompt management, RAG utilities, agent framework |
Next Steps
Explore each technology layer in detail: