This project is a suite of three ASP.NET Core Web API applications designed to manage data exchange, request routing, and software update distribution across a network of vending machines and server systems. Together, they form the backbone of all inter-system communication, handling everything from data synchronization to machine configurations and update management. Developed entirely by me, this modular architecture ensures reliable connectivity even in complex environments involving isolated customer networks, multi-device deployments, or hybrid infrastructure (on-premise and cloud).
The Connector app is responsible for processing all incoming data from external sources-either the main server or peer vending machines. It acts as the core data sync engine that validates, updates, or removes records such as:
The logic ensures idempotent operations (e.g., avoiding duplicate records), version checks, and safe merging or overwriting of existing data. This service ensures every machine and server instance maintains consistent, accurate state.
The Router app handles intelligent data routing between isolated network environments. It's deployed in the main vending machine of a customer site and solves the challenge of bridging communication between:
Based on the direction of communication, it forwards packages (user data, transactions, product updates, etc.) either to a peer machine’s Connector or to the central server. This ensures seamless data flow even across segmented infrastructures.
This service manages the delivery of software update packages to vending machines. It runs primarily on the main server and is also mirrored on the main vending machines within each location.
The update mechanism supports differential updates, version tracking, and distribution rules based on machine type or deployment role.