Engineering Highlight

Simplifying SaaS-to-On-Premise Connectivity

Improving Reliability by Eliminating Customer-Managed Network Dependencies

Simplifying SaaS-to-On-Premise Connectivity

Background

ProShop is a cloud-hosted ERP platform used by machine shops to manage critical business processes such as quoting, machine scheduling, purchasing, work orders, and invoicing. Many customers rely on desktop accounting software such as QuickBooks Desktop and Sage 50 to manage their financial records.

To eliminate duplicate data entry and streamline accounting workflows, ProShop provides accounting connector software that runs within the customer’s environment. The connector is installed on the same PC as the accounting application and uses the vendor-provided SDKs to create invoices, and bills generated within ProShop.

This architecture allows machine shops to continue using their existing accounting software while benefiting from the operational efficiencies of a cloud-based ERP platform. However, because the accounting applications run within the customer’s own environment, ProShop must maintain reliable communication between our cloud-hosted service and software operating inside customer networks.

As our customer base grew, the networking requirements needed to support this communication became increasingly difficult to deploy, support, and troubleshoot.

The Challenge

The original connectivity model was designed at a time when the customer base was smaller and the deployment process could be managed with a higher degree of individual attention.

To enable communication between the ProShop platform and the accounting connector running within a customer’s environment, network connectivity needed to be established between cloud-hosted services and software operating inside the customer’s network. While this approach worked well, it often required customer-specific network configuration and ongoing maintenance.

As ProShop continued to grow, several challenges began to emerge. Deployment and onboarding could be difficult for customers without dedicated IT resources, and troubleshooting connectivity issues often required investigating networking, firewall, routing, and workstation configuration across a wide variety of environments.

The solution also relied on customer-managed infrastructure and network configuration remaining consistent over time. Changes to internet services, network equipment, workstation configuration, or security policies could occasionally introduce connectivity issues that required additional support and investigation.

From an operational perspective, the architecture created support overhead and complexity that became increasingly difficult to scale as the customer base expanded. The team recognized an opportunity to simplify deployment, improve reliability, reduce support requirements, and move toward a more maintainable long-term solution.

Our Solution

My Role

The Outcome

Lessons Learned

Historically, customers were required to configure static IP addresses, firewall rules, and port forwarding to enable communication between cloud services and on-premise applications. To reduce deployment complexity and improve reliability, we helped implement a new architecture that established secure outbound connections to AWS instead..

My involvement included supporting the design, implementation, testing, and troubleshooting of the solution as it was rolled out to customer environments.

Technologies

  • AWS Elastic Container Service (ECS)
  • Linux
  • Golang, gRPC, Protocol Buffers
  • QuickBooks, SAGE50

Key Takeaway: We reduced deployment complexity and improved reliability by helping replace a customer-managed networking solution with a more secure cloud-connected architecture.