Skip to main content

Microservices Architecture Explained

GCXONE employs a microservices architecture built on Kubernetes to provide scalable, resilient, and maintainable cloud services. This architecture enables the platform to support hundreds of device manufacturers while maintaining a unified interface and API.

⚙️

Microservices

Scalable & Resilient

Architecture Benefits

🌐

Universal Support

Specialized proxies handle device-specific protocols

📈

Scalability

Each service scales independently based on demand

🛡️

Resilience

Service failures are isolated and don't cascade

🚀

Rapid Development

New device support without affecting core services

Microservices Architecture


The Universal Translator: Proxy Architecture

How Proxy Architecture Works

Proxies act as "universal translators" between GCXONE's standardized API and device-specific protocols

Core Concept

🔌 Standardized Interface

  • GCXONE Core uses the same API for all proxies
  • Consistent input signatures
  • Unified output schemas
  • Device complexity hidden from core

🔄 Protocol Translation

  • Each proxy understands manufacturer protocols
  • Translates between protocols and standards
  • New devices = new proxy service
  • No core system changes needed

Communication Flow

Request Flow Through Microservices

1. User Request

User initiates an action through web or mobile interface (e.g., PTZ control, live stream, playback).

2. API Gateway

Request goes to GCXONE API, the single entry point for all client requests.

3. Routing

API identifies the request type and device manufacturer, then consults a dictionary of proxy endpoints.

Example Endpoint Dictionary

{
"Hikvision": "hikproxy.nxgen.cloud",
"Dahua": "dahuaproxy.nxgen.cloud",
"Axis": "axisproxy.nxgen.cloud",
"Hanwha": "hanwhaproxy.nxgen.cloud"
}

Device Protocol Support

📡 Supported Protocols

Protocol TypeUsage ExamplesDevice ExamplesNotes
HTTP/REST/Open APIDevice info, camera lists, PTZ controlHikvision, Hik-Connect ProNot suitable for streaming
SDKLive stream, playback, video files, two-way audioHikvision (.NET HcNetSDK)Provides TCP layer for streaming
TCP/Native TCPLegacy devices, alarm transmissionADPROEvent push via TCP
Webhooks/HTTPEvent transmission from IP camerasAxis, HanwhaHTTP requests to camera rules
WebSocket SubscriptionReal-time event streamingAxxonPulled by GCXONE via websocket
SIA DC-09Alarm transmissionReconeyezRouted through Talos receiver

Infrastructure & Scaling

☁️ Kubernetes Orchestration

  • Private EKS Clusters: 75% of logic on secure nodes
  • Containerized Services: All services in Docker containers
  • Service Mesh: Kubernetes networking
  • Load Balancing: Automatic load distribution
  • High Availability: Automatic failover

📈 Auto-Scaling (HPA)

  • Horizontal Scaling: Add pods, not vertical scaling
  • 75% CPU Threshold: Triggers new pod creation
  • 2-3 Minute Lead Time: Ensures pods ready before 100%
  • Service-Specific: Each service scales independently
  • Resource Efficiency: Scale only what's needed

Services Requiring Autoscaling

🧠

CVIDR

AI engine for event detection and image processing

📹

Streaming

Video streaming and transcoding services

⚙️

Proxies

Device proxy services (e.g., Adpro proxy)

🔔

Events

Alarm and event processing services

Microservices Components

🌐 Core Services

  • API Gateway: Single entry point
  • Authentication: Auth0 integration
  • Device Management: Registration & monitoring
  • User Management: Accounts & permissions

⚙️ Proxy Services

  • Hikvision Proxy: SDK & ISAPI
  • Dahua Proxy: DoLynk & native
  • Axis Proxy: HTTP/Webhook
  • Other Proxies: Manufacturer-specific

🔧 Supporting Services

  • Streaming: Video & WebRTC
  • AI/ML (CVIDR): Event detection
  • Messaging: MQTT routing
  • Storage: Video & snapshots

Architecture Benefits

✅ Advantages

  • Scalability: Independent scaling per service
  • Resilience: Fault isolation prevents cascading failures
  • Maintainability: Isolated device-specific logic
  • Development Speed: Rapid feature addition
  • Technology Diversity: Different tech stacks per service

🎯 Best Practices

  • Single Responsibility: One clear purpose per service
  • API-First Design: Well-defined service APIs
  • Stateless Services: No session state
  • Circuit Breakers: Prevent cascading failures
  • Monitoring: Service-specific metrics

Need Help?

If you have questions about the microservices architecture or need technical assistance, check our Troubleshooting Guide or contact support.