Skip to content

System Architecture Overview ​

OmniNet follows a microservices architecture where each domain is independently deployable, communicating via gRPC (synchronous RPC), Apache Kafka (asynchronous events), and WebSocket (real-time messaging).


High-Level System Diagram ​


Request Lifecycle — REST / SSE ​


Request Lifecycle — WebSocket Chat ​


Design Principles ​

Database-per-Service ​

Each service owns its own isolated PostgreSQL database. No direct cross-service DB queries.

ServiceLanguageDatabase
auth-serviceJavaomninet_auth
storage-serviceJavaomninet_storage
notes-serviceJavaomninet_notes
ai-serviceJavaomninet_ai
chat-serviceGoomninet_chat

Dual Entry Points ​

Traffic TypeEntry PointAuth Method
HTTP / SSE / RESTAPI Gateway :8080JWT validated by Gateway → header enrichment
WebSocketChat Service :8085JWT validated directly by Chat Service

Synchronous — gRPC ​

Low-latency service-to-service calls (file ops, user lookup) use gRPC with Protobuf contracts.

Asynchronous — Kafka ​

USER_CREATED → Storage provisions folders + Notes provisions categories. File/note/todo lifecycle events.

Real-Time — WebSocket + Redis Pub/Sub ​

Chat messages delivered locally; Redis Pub/Sub fans out across multiple Chat Service instances for horizontal scaling.

Security Model ​

Released under the MIT License.