Business Impact and Considerations
Addressing these distributed infrastructure challenges was critical for NLC’s operational continuity and service delivery, especially since:
- Network connectivity failures may cause complete operational shutdown at remote terminals
- Manual update processes may lead to security vulnerabilities and version inconsistencies
- Physical infrastructure limitations can prevent rapid scaling at new terminal locations
- Data synchronization failures may result in inventory discrepancies and reporting errors
- Inability to meet strict data residency requirements for on-premises deployment
On-Premises Distributed Architecture
DPL designed and implemented a sophisticated distributed TOS deployed entirely on-premises with a hub-and-spoke architecture. The solution leverages virtualization, offline-first design patterns, and automated DevOps practices to ensure continuous operations across geographically dispersed terminals.
1. Distributed Terminal Architecture with Offline Capability
- Hub-and-spoke topology with central data center and autonomous remote terminal nodes
- Each terminal runs complete application stack (.NET Core backend, React frontend, Oracle database)
- Offline-first design for enabling full terminal functionality without central connectivity
- Local data caching and queuing for transactions during connectivity outages
- Automatic reconnection and data synchronization when connectivity resumes
2. Oracle GoldenGate for Real-Time Data Replication
- Bi-directional data replication between central data center and remote terminals
- Real-time change data capture (CDC) for transaction-level replication
- Conflict detection and resolution using timestamp-based and business rule strategies
- Data filtering and transformation during replication for terminal-specific datasets
- Automatic checkpoint and recovery to enable resumption after network disruptions
- Monitoring and alerting for replication lag and synchronization issues
3. VMware vSphere Virtualization Platform
- Complete infrastructure virtualization across central and remote locations using VMware ESXi
- vCenter Server managing VM lifecycle, resource allocation, and high availability
- VM templates and cloning for rapid terminal provisioning and standardization
- vMotion to enable live VM migration for maintenance without downtime
- Distributed Resource Scheduler (DRS) for optimizing resource utilization across hosts
- VM snapshots and backups for disaster recovery and rollback capabilities
4. Application Stack: .NET Core, React, Linux
- .NET Core backend services to provide RESTful APIs and business logic tier
- React frontend for delivering responsive single-page application (SPA) experience
- Linux-based application servers (CentOS/RHEL) for providing stable, secure runtime environment
- Nginx reverse proxy for load balancing and SSL/TLS termination
- Systemd service management for application lifecycle and automatic restart
- Containerization using Docker for consistent deployment across environments
5. Centralized Identity: Microsoft Active Directory
- Microsoft Active Directory as centralized identity provider for authentication and authorization
- LDAP integration with .NET Core application for seamless SSO experience
- Group Policy enforcement for security policies and configuration management
- Read-only Domain Controllers (RODC) deployed at remote terminals for offline authentication
- Role-based access control (RBAC) mapped to AD security groups
- Cached credentials to enable user authentication during central AD unavailability
6. DevOps Automation: Over-the-Air Updates
- GitLab CI/CD pipelines for automating build, test, and deployment workflows
- Ansible playbooks for orchestrating configuration management and application deployment
- Over-the-air update mechanism to push updates to remote terminals via secure channels
- Blue-green deployment strategy with automatic rollback on failure detection
- Staged rollout approach for deploying to pilot terminals before fleet-wide updates
- Automated security patching for OS and application dependencies
- Health checks and monitoring verifying successful deployment across terminals
