OX Agry - Technology Stack Documentation
Overview
OX Agry is built using a modern, cloud-native microservices architecture with GraphQL federation. This document outlines the complete technology stack and tooling decisions for the project.
Core Architecture
Backend Framework
- NestJS - Node.js framework for building scalable server-side applications
- GraphQL API - Query language and API standard for flexible data fetching
- Apollo Federation - Distributed GraphQL architecture for microservices
Repository & Development
- Nx Monorepo - Monorepo management with build system and dev tools
- Microservices Architecture - Service-oriented architecture pattern
- GitLab - Source code management and CI/CD platform
Container Orchestration & Cloud
- Kubernetes - Container orchestration platform
- Google Kubernetes Engine (GKE) - Managed Kubernetes service on Google Cloud
- Helm - Kubernetes package manager for application deployment
Data Layer
Database & ORM
- PostgreSQL - Primary relational database
- Prisma ORM - Type-safe database client and query builder
- Prisma Postgres - Managed PostgreSQL hosting service
Caching & Message Queue
- Redis Cloud - Managed Redis service for caching and session storage
- CloudAMQP - Managed RabbitMQ service for message queuing
Security & Authorization
Access Control
- OpenFGA - Fine-grained authorization system based on Google Zanzibar
Secret Management
- Google Secret Manager - Primary secret management service
- HashiCorp Vault - Advanced secret management (planned for future implementation)
Code Quality & Testing
Code Quality
- ESLint & Prettier - Code linting and formatting (built into NestJS)
- SonarQube - Code quality analysis (optional, planned for later)
Testing Framework
- Jest - Unit testing framework
- Jest - End-to-end testing framework
- Grafana k6 - Load and performance testing
DevOps & Infrastructure
Infrastructure as Code
- Terraform - Infrastructure provisioning and management
GitOps & Deployment
- ArgoCD - GitOps continuous delivery for Kubernetes
Container Registry
- GitLab Container Registry - Docker image storage and management
Service Mesh
- Google Cloud Service Mesh - Managed service mesh for microservices communication
Monitoring & Observability
Monitoring & Logging
- Google Cloud Operations Suite - Comprehensive monitoring, logging, and error tracking
- Application Performance Monitoring
- Log aggregation
- Error tracking and alerting
Networking & DNS
DNS Management
- Cloudflare - DNS management and CDN services
Local Development Ingress
- Traefik - Modern HTTP reverse proxy and load balancer
Development Environment
IDE
- WebStorm - Integrated development environment for JavaScript and TypeScript
Local Development Tools
- Minikube - Local Kubernetes cluster for development
- Skaffold - Continuous development workflow for Kubernetes applications
Documentation
Documentation Platform
- Docusaurus - Static site generator for project documentation
Technology Stack Summary
| Category | Primary Tool | Alternative/Future |
|---|---|---|
| Backend | NestJS + GraphQL | - |
| Architecture | Microservices + Apollo Federation | - |
| Repository | Nx Monorepo | - |
| Orchestration | Kubernetes (GKE) | - |
| Database | PostgreSQL + Prisma | - |
| Caching | Redis Cloud | - |
| Message Queue | CloudAMQP (RabbitMQ) | - |
| Authorization | OpenFGA | - |
| Secrets | Google Secret Manager | HashiCorp Vault |
| Testing | Jest + k6 | - |
| Code Quality | ESLint + Prettier | SonarQube |
| IaC | Terraform | - |
| GitOps | ArgoCD | - |
| Service Mesh | Google Cloud Service Mesh | - |
| Monitoring | Google Cloud Operations | - |
| DNS | Cloudflare | - |
| Registry | GitLab Container Registry | - |
| Local Dev | Minikube + Skaffold + WebStorm | - |
| Documentation | Docusaurus | - |
Architecture Principles
- Cloud-Native First - Built for Kubernetes and cloud environments
- Microservices Pattern - Independently deployable services with GraphQL federation
- Infrastructure as Code - All infrastructure defined and versioned in code
- GitOps Workflow - Automated deployments based on Git state
- Observability by Design - Comprehensive monitoring and logging from the start
- Security-First - Fine-grained authorization and proper secret management
- Developer Experience - Modern tooling for efficient development workflows
Getting Started
For detailed setup instructions and development guidelines, please refer to the individual service documentation and the main project README.
This documentation is maintained alongside the codebase and should be updated as the technology stack evolves.