Vision: An Extensible Methodology for Formal Software Verification in Microservice Systems
Connor Wojtak, Darek Gajewski, Tomas Cerny
TL;DR
The paper introduces an extensible methodology for application-layer formal verification in microservice systems by reverse-engineering code into a formal intermediate model and deriving SMT constraints for cross-cutting concerns, with a focus on architecture. It details a three-stage process (intermediate model, SMT constraint generation, and consistency verification) and formal proofs of constraint soundness for key architectural properties like no intra-service remote calls, bounded hub-like dependencies, and absence of cycles. The approach supports extensions to authorization and other concerns, and discusses extraction challenges and scalability considerations, including potential optimization strategies. The work aims to reduce governance burden, testing costs, and verification time in complex microservice deployments, while offering a rigorous foundation for future empirical evaluation and expansion to additional concerns.
Abstract
Microservice systems are becoming increasingly adopted due to their scalability, decentralized development, and support for continuous integration and delivery (CI/CD). However, this decentralized development by separate teams and continuous evolution can introduce miscommunication and incompatible implementations, undermining system maintainability and reliability across aspects from security policy to system architecture. We propose a novel methodology that statically reconstructs microservice source code into a formal system model. From this model, a Satisfiability Modulo Theories (SMT) constraint set can be derived, enabling formal verification. Our methodology is extensible, supporting software verification across multiple cross-cutting concerns. We focus on applying the methodology to verify the system architecture concern, presenting formal reasoning to validate the methodology's correctness and applicability for this concern. Additional concerns such as security policy implementation are considered. Future directions are established to extend and evaluate the methodology.
