A production-grade distributed microservices platform
Notes · Storage · AI Chat · Real-Time Chat · Authentication · Events
📚 Documentation · 🐛 Report Bug · 🚀 Quick Start
OmniNet is a full-featured, cloud-native polyglot microservices platform (Java + Go) built with independently deployable services communicating via gRPC, Apache Kafka, and WebSocket.
| Module | Language | Capabilities |
|---|---|---|
| 🔐 Auth | Java | JWT, OAuth2 (Google/GitHub), Email OTP, multi-device refresh token rotation |
| 📝 Notes | Java | Rich CRUD, categories, todos, file attachments, recycle bin, pin/favourite, search |
| 🗂️ Storage | Java | S3/MinIO, presigned URLs, folder hierarchies, per-user quotas |
| 🤖 AI Chat | Java | Gemini streaming, multi-session, web search, voice input, Ollama fallback |
| 💬 Chat | Go | Real-time WebSocket, DM/Group, typing indicators, reactions, read receipts, Redis Pub/Sub scaling |
| ⚡ Events | Java | Kafka-driven user provisioning, storage auditing, reminder scheduling |
Client (React + Vite)
│ HTTP / SSE │ WebSocket ws://
▼ ▼
API Gateway (:8080) Chat Service Go (:8085)
│ JWT · Rate Limit · Routing │ JWT · Hub · Redis Pub/Sub
├──────────────────────┐
▼ ▼
auth-service (:8081) notes-service (:8083)
storage-service (:8082) ai-service (:8084)
│
Kafka · Redis · PostgreSQL (per service) · MinIO
Full architecture diagrams and service documentation: docs.omninet
- Docker 24+ & Docker Compose v2
- Node.js 18+ & npm 9+
git clone https://github.com/Surendra1341/Omninet.git
cd Omninet/omninet-microservices
cp .env.example .env
# Edit .env with your OAuth2 credentials, Gemini API key, and mail settingsdocker compose up --build -dcd ../omninet-security-web
npm install && npm run devOpen http://localhost:5173 🎉
Omninet/
├── omninet-microservices/ # Backend services
│ ├── omninet-proto/ # Protobuf + gRPC stubs (Java)
│ ├── omninet-common/ # Shared DTOs, filters, events (Java)
│ ├── api-gateway/ # Reactive gateway (:8080) — Java
│ ├── auth-service/ # Auth & OAuth2 (:8081) — Java
│ ├── storage-service/ # S3/MinIO (:8082) — Java
│ ├── notes-service/ # Notes, todos, categories (:8083) — Java
│ ├── ai-service/ # AI chat & voice (:8084) — Java
│ ├── chat-service/ # Real-time WebSocket chat (:8085) — Go
│ ├── docker-compose.yml # Full dev stack (all 6 services)
│ ├── docker-compose.infra.yml # Infrastructure only
│ └── docker-stack.yml # Production Swarm
├── omninet-security-web/ # React frontend (:5173)
├── Omninet-Core/ # Original monolith (reference)
└── docs/ # VitePress documentation
| Layer | Technology |
|---|---|
| Backend (Java) | Spring Boot 3.5, Spring Cloud Gateway, Spring Security |
| Backend (Go) | Go 1.22, go-chi, gorilla/websocket, pgx/v5, go-redis |
| Inter-Service RPC | gRPC + Protobuf |
| Events | Apache Kafka (KRaft) |
| Real-Time | WebSocket + Redis Pub/Sub |
| Cache | Redis 7 |
| Database | PostgreSQL 16 (one DB per service — 5 total) |
| Storage | MinIO (S3-compatible) |
| AI | Google Gemini + Ollama (fallback) |
| Frontend | React 18, Vite, TailwindCSS, DaisyUI, Zustand, GSAP, Lenis |
| Container | Docker Compose + Docker Swarm |
Full documentation: https://surendra1341.github.io/Omninet/
| Section | Description |
|---|---|
| Introduction | What is OmniNet, tech stack, repo structure |
| Quick Start | Get up and running fast |
| Architecture | System diagrams and design principles |
| Chat Service | Go WebSocket service — hub, events, scaling |
| AI Service | Gemini streaming, tool calling, SSE |
| Deployment | Docker, Swarm, and local development |
| Troubleshooting | 17 documented issues and fixes |
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Push and open a Pull Request
MIT License — see LICENSE for details.