In one aspect, a micro-service control architecture provides a modular, flexible platform for designing, diagnosing, updating and/or expanding process control systems. Each service is containerized to provide portability and isolation from other components of the process control system. In another aspect, a function block diagram includes a “shadow” block that acts as an interface to an external, custom calculation engine, thereby enabling the custom calculation engine to operate synchronously with respect to other function blocks of the function block diagram.