Abstract
The study examines the distinctive challenges of change management in distributed event-driven architectures, where asynchronous communication and autonomous service evolution create material risks of degrading overall system resilience through incompatible modifications. The objective is to develop and theoretically substantiate a formal model for the evolution of API contracts and message schemas, designed to minimize the probability of incompatibility during updates. The methodological basis combines a systematic analysis of relevant publications, a comparative review of data serialization approaches, and the use of lattice-theoretic apparatus to represent the space of version states and the ordering relations defined over that space. The research explores in detail the mechanisms that support backward and forward compatibility, as well as the functional role of schema registries as an infrastructural means of preventing cascading failures under conditions of multiple consumer dependencies. Key results include the formalization of criteria for contract substitutability and the construction of a version-orchestration algorithm grounded in directed acyclic graphs, enabling coordinated propagation of changes in a distributed environment. The findings indicate that incorporating consumer contracts and automated schema verification into the CI/CD loop can reduce the frequency of integration defects by 49.7%. The results are applicable to the design of fault-tolerant interfaces for high-load systems that must adapt to rapidly shifting market requirements, and they offer practical value for system architects, heads of technical units, and engineers building scalable financial platforms and cloud solutions.
Keywords
event-driven architecture API contract evolution backward compatibility schema registry microservices breaking changes formal verification lattice theory consumer contracts versioning.
Introduction
Contemporary software engineering practice shows a sustained shift away from monolithic constructions toward distributed microservice ecosystems, in which containerization and service decomposition have become a technological standard and APIs function as the principal mechanism of architectural coupling. According to industry analytics, by 2025 up to 90% of enterprise applications are expected to be implemented on the basis of microservice approaches and container environments, further reinforcing the centrality of APIs in architectural interaction [5]. Empirical results reported in 2025 indicate that 87% of organizations have already moved away from monolithic solutions in favor of distributed models when building mission-critical applications [2]. The adoption of event-driven architectures (EDA) is associated with pronounced effects in scalability and operational agility: a 47% increase in resilience under partial failures and a 68% reduction in time-to-market are reported for EDA-based delivery models [2, 3]. At the same time, decentralization inevitably entails a qualitative increase in the complexity of managing interfaces and their changes, because the coordination of interactions and dependencies shifts into the plane of contracts and message schemas [3, 4].
The relevance of the research problem is driven by the direct dependence of financial and operational metrics on the correctness of API changes and the stability of contracts. In 2024, the volume of data breaches attributable to API vulnerabilities or misconfiguration increased by 80%, while the number of compromised records grew by 214% year over year [6]. For the financial sector, which is actively scaling open banking principles, the cost of an incorrect update to a message contract can be comparable to multi-million-dollar losses, given the rapidly expanding scale of transaction interaction via interfaces: in 2025, open finance is projected to reach 137 billion API calls, rising to 722 billion by 2029 [7]. Under such conditions, classical testing regimes prove methodologically and technologically constrained, while uncoordinated asynchronous API changes that produce breaking changes become a driver of systemic instability [1].
The scientific gap in this domain is expressed in the absence of unified formal models that can adequately describe the evolution of asynchronous contracts while simultaneously accounting for both syntactic and behavioral compatibility. In practice, widely used versioning disciplines often collapse into nominal adherence to semantic versioning, which is violated in 48.35% of cases during minor updates [8].
The purpose of this study is to develop and theoretically substantiate a formal model for the evolution of API contracts and message schemas, oriented toward minimizing the probability of incompatibility during updates.
Scientific novelty is associated with the use of lattice theory and categorical analysis to order the space of message versions and to derive conditions for automated identification of incompatibilities.
The initial hypothesis is that replacing reactive mitigation of consequences with proactive version orchestration—supported by typed verification and the use of schema registries—can substantially reduce the blast radius when functional changes are introduced.
Materials and Methods
The methodological foundation integrates theoretical and empirical strategies, enabling a coherent treatment of contract evolution as an interdisciplinary problem that spans interface specification, compatibility properties, and the controllability of change in distributed environments. The baseline instrument was a systematic literature review that included publications in highly ranked journals and conference proceedings indexed in Scopus, WoS, IEEE, and ACM over recent years. To structure the search and select studies, the PICO criterion (Population, Intervention, Comparison, Outcome) was applied, narrowing the analytical focus to methods of formal contract verification in distributed systems and aligning reported results within a single evidence-oriented logic [9].
The empirical-analytic track was complemented by comparative analysis, within which current serialization formats (Avro, Protobuf, JSON Schema) were evaluated against performance, adaptability to evolution, and the degree of support provided by schema registries. This made it possible to identify architecturally meaningful trade-offs between schema expressiveness and the manageability of versions [10]. The formal component of the research was implemented through verification and modeling methods: lattice-theoretic principles and type-theoretic constructs were used to describe data granularity, as well as to define partial-order relations between schema versions that encode permissible transitions during contract changes [11, 12]. To represent service dynamics and states, Event-B was employed, enabling rigorous specification of invariants and the verification of transition correctness under event-based interaction [13, 14].
Practical validation of the theoretical results was supported through a case-study design that included analysis of high-load payment solutions and “smart city” systems (projects in Riyadh and the UAE), as well as an audit of back-office platforms used by the largest brokerage firms in the UAE. This empirical frame enabled the alignment of formal conclusions with operational constraints, reliability requirements, and regulatory expectations, including standards and prescriptions of the Central Bank of the UAE (CBUAE) [15]. In addition, a content analysis of technical documentation was conducted: the AsyncAPI 3.0 specification was examined, along with internal norms and practices of messaging frameworks, including MassTransit and Apache Kafka. This provided a basis for comparing the proposed formal models with dominant industry conventions for describing interfaces and event streams [16, 18].
Results and Discussion
In event-driven asynchronous systems, an API contract can no longer be interpreted as a static description of an interaction endpoint. Instead, it takes the form of a dynamic agreement that captures not only message structure, but also message semantics and the temporal properties of exchange. In a formal setting, a contract is defined as an ordered pair [A,G] where A (Assumptions) specifies assumptions about the behavior of the environment and the characteristics of input data, and G (Guarantees) specifies the guarantees provided by the service provided that those assumptions hold [17, 21]. For asynchronous exchange, this construction is naturally extended by explicitly including data schemas and transmission regulations, because these elements determine the admissible forms of messages and the rules of their interpretation within a distributed control loop [19].
Contract evolution is considered safe under the condition of Strong Replaceability, according to which a new contract version must reproduce the functional properties of its predecessor under the same or less restrictive premises [20, 21]. When applied to message schemas, this requirement is conceptually aligned with criteria of backward and forward compatibility, because replaceability expresses the possibility of correct interaction when the data format and the rules of its interpretation change, without violating the integrity of inter-service dependencies.
Within Table 1 presented below, the results of a comparative analysis of schema compatibility modes in distributed systems are demonstrated.
| Compatibility mode | Change rule | Impact on the system | Update scenario |
| Backward | New code reads old data | Old producers can operate with new consumers | Consumers are updated first |
| Forward | Old code reads new data | New producers can operate with old consumers | Producers are updated first |
| Full | Bidirectional compatibility | Maximum flexibility and deployment independence | Mixed order |
| Transitive | Compatibility with all previous versions | Prevents accumulation of schema-related technical debt | Mission-critical systems |
Violation of these conditions leads to the emergence of breaking changes, which in event-driven architectures can manifest with a temporal offset: the defect becomes observable not at the moment of deployment, but during the processing of messages that have accumulated in a broker or queue. This latency follows from the asynchronous nature of interaction and the time gap between event publication and event consumption. As a result, the causal link between a contract change and a subsequent failure is substantially blurred, while incident diagnosis and reproducibility become more difficult [23,24].
For a rigorous description of the version space of schemas, the use of lattice-theoretic apparatus appears well grounded. A set of schemas S can be specified as a partially ordered set (poset) with respect to a compatibility relation ⪯. If schema S₂is a subset of, or a compatible extension of, S₁, the relation S₁ ⪯ S₂ is fixed. Within such a structure, for any two schemas one can define a supremum and an infimum, which makes it possible to formalize version reconciliation operations and to compute the minimally sufficient transformations required to synchronize services that are at different stages of an update [12, 22]. In that sense, compatibility ceases to be a heuristic criterion and is moved into the domain of computable order relations suitable for automated change control.
The logic of the lattice-based model is conceptually associated with the category of type granularity. In studies published in 2024–2025, granularity is introduced as a formal basis for verifying the correctness of data transformations, enabling the detection—already at the design stage—of typical structural pathologies, including information loss and distortion of analytical indicators caused by erroneous joins or duplicated metrics [13]. This approach strengthens the checkability of not only syntactic, but also semantically meaningful transformations, because granularity fixes the admissible degree of detail and aggregation of data when transitioning between schema versions.
Embedding this model into schema registries makes it possible to implement a “zero-cost verification” paradigm: incompatible modifications are blocked at the schema storage layer before a producer begins generating traffic, that is, before incorrect messages appear in the transport loop. As a consequence, defect propagation along chains of consumers is prevented, and the probability of cascading failures caused by contract incompatibility is reduced.
Empirical observations of the reliability of modern distributed systems indicate that even with broad use of automated control mechanisms, the human factor continues to contribute a meaningful share of incidents. Statistics point to a substantial fraction of errors arising from incorrect interpretation of version semantics and a flawed understanding of the boundaries of permissible change, which supports the need for formal compatibility criteria and their machine-checkable fixation within API evolution management processes (see Fig. 1).

A quantitative characterization of change-driven effects is expressed through the Change Impact Factor (CIF) and the Modifiability Index (MI). The use of formal models for contract evolution yields a measurable reduction in CIF by 49.7%—from 0.303 to 0.152—which can be interpreted as a tangible increase in system resilience while preserving a high pace of development and feature delivery [3].
In applied event-driven solutions, particular importance is attached to technological patterns associated with Kafka and MassTransit ecosystems, as well as infrastructural components for contract governance. A central element is the schema registry, which functions as a single repository of contracts and their versions. Through centralized storage and formalized compatibility rules, the registry verifies whether messages conform to approved schemas at the moment of publication and/or consumption, thereby supporting a mode of “near-real-time” validation and preventing incompatible changes from entering the transport layer [25, 27].
Table 2 summarizes the results of comparing serialization formats for high-load EDA settings.
| Characteristic | Apache Avro | Google Protobuf | JSON Schema |
| Format | Binary | Binary | Text |
| Schema management | Embedded (schema evolution) | Strict (field tags) | External |
| Performance | High (balanced) | Maximum (≈5% faster than Avro) | Low (high CPU overhead) |
| Readability | Requires deserialization | Requires deserialization | Human-readable |
| Typical use case | Big Data, Kafka Streams | gRPC, low-latency | Web API, integration |
When MassTransit is used to implement a Saga pattern or state machines, the message contract is effectively embedded into the lifecycle of the business process and begins to act as its structuring element, determining the correctness of state transitions and the reproducibility of the event history [28, 29]. The use of GUID identifiers from the NewId family provides the required properties of uniqueness and ordering of events in distributed queues, reducing the likelihood of data races when different service versions are operated in parallel during an update window [19]. A substantial role in maintaining consistency is also played by the Outbox pattern, which ensures atomicity between persisting state changes and subsequently publishing a message to a broker (for example, RabbitMQ or Kafka). This mechanism becomes particularly critical during schema evolution because it stabilizes the eventual-consistency loop and eliminates divergence between the factual state of domain data and the event log [30, 31].
Regional specifics in the design of distributed financial systems are strongly shaped by compliance with local norms and supervisory requirements. In the United Arab Emirates, the launch of the Nebras platform within the regulatory perimeter of the Open Finance Regulation 2024 establishes elevated expectations for API contracts used by licensed financial institutions, standardizing both security parameters and reliability properties of interface-level interaction [15]. In 2025, several aspects are emphasized within the UAE regulatory frame: an orientation toward FAPI 2.0 as the current security profile for financial APIs, implying the use of Pushed Authorisation Requests (PAR) and JWT-secured authorisation (JAR); an idempotency requirement expressed through mandatory support for idempotency keys in contracts to prevent transaction duplication under network faults; and the need to account for localization and data residency when building cloud infrastructure on AWS or Azure in the MENA region [16].
In the Russian banking segment, architectural transformation is often associated with moving away from heavyweight ESB approaches toward microservice gateways and streaming platforms built on Apache Kafka, which tightens requirements for versioning discipline and compatibility management across omnichannel front-office layers. Under such modernization trajectories, consumer stability and predictable contract evolution become determining factors in reducing operational risk.
To constrain the cascading spread of changes, a version-orchestration model is proposed that relies on a Directed Acyclic Graph (DAG), where vertices correspond to microservice versions and edges reflect dependencies defined by contracts. This representation allows the update order to be described formally, critical incompatibility propagation paths to be detected, and the blast radius of change to be managed—reducing the probability of systemic degradation arising from uncoordinated version transitions [1, 4].
Formal compatibility verification is implemented algorithmically by computing the transitive closure of the dependency graph, followed by validation of coherence for each “consumer–provider” pair prior to activating a new version in the schema registry. Such an ordering prevents uncontrolled propagation of incompatibility along consumption chains and shifts version admission from a procedural decision to a machine-checkable criterion. A practical consequence is the feasibility of a Strangler Fig strategy, in which legacy and modernized components coexist in parallel and migration proceeds incrementally until older contracts are fully displaced—without abrupt cutovers and without service degradation [32].
The economic dimension of contract evolution becomes visible through the direct monetization of technical debt in APIs: maintaining compatibility and governing dependencies require sustained engineering expenditure and reduce the team’s throughput for building new functionality. In 2024, monthly dependency maintenance costs in large enterprise initiatives were estimated at $35,000–$70,000, while remediation of breaking changes could consume up to 35% of engineers’ working time, effectively creating a hidden “tax” on change and slowing delivery velocity [33]. In such a configuration, the relevance of intelligent automation increases, because applying AI methods to contract evolution shifts the focus from post-factum reaction to earlier detection of incompatibility, improving change predictability and reducing the total cost of ownership for interfaces across the lifecycle of distributed systems [24].
Table 3 outlines the cost structure of API change management.
| Cost item | Monthly cost (USD) | Rationale |
| Security Patches | 8,000–15,000 | Updating vulnerable libraries |
| Breaking Change Fixes | 12,000–25,000 | Refactoring due to contract changes |
| Testing and Validation | 10,000–20,000 | Regression testing and CDC |
| Total | 35,000–70,000 |
By the end of 2025, the role of AI as a means of automating contract formation and related testing artifacts becomes markedly stronger. Organizations that have adopted AI toolchains show more pronounced commercial dynamics: revenue growth is reported at 83%, compared to 66% among companies not using AI-based approaches [24]. In the context of event-driven systems, automated generation of consumer tests (contract testing) from AsyncAPI specifications becomes especially consequential, because it shortens the feedback cycle for changes, increases early-stage visibility of incompatibilities, and reduces the chance that breaking changes will reach production environments [18, 35].
At the same time, the adoption of formal models for contract evolution is constrained by several persistent barriers. A material factor is the steep learning curve: even with a high level of engineering maturity, a transition to consumer-driven testing, including CDCT, demands a methodological reshaping of processes and substantial investment in training and internal standardization of practices [34]. A second limitation is the increased complexity of runtime monitoring: verifying message–contract conformance in a near-real-time mode inevitably introduces computational overhead that—depending on the chosen serialization format and the load profile—may reach 5–10% in performance terms [10]. A third group of obstacles is organizational in nature: team autonomy, one of the systemic advantages of the microservice paradigm, becomes a barrier when coordinated evolution of global data schemas is required, along with synchronization of contract changes across multiple independent domains [34].
As a practical direction for overcoming these constraints, the use of tools in the CommaSuite class is considered. Such tooling supports automatic generation of adapters and monitoring components based on AsyncAPI models, lowering the entry threshold, minimizing manual operations in contract maintenance, and making verification procedures less intrusive for product teams—while preserving strict compatibility-control properties [35].
Conclusion
The work developed and theoretically substantiated a formal model for the evolution of API contracts and messages that is grounded in the operational realities of modern event-driven systems. The results suggest that replacing ad hoc versioning with a strict mathematical construction—built on lattice theory and directed acyclic graphs—becomes a critical condition for preserving the resilience of distributed architectures in the 2025 landscape.
Achieving the stated objective required solving a set of interconnected tasks. First, the need to formalize contracts as a mechanism for reducing operational risk was justified for fintech systems and high-load digital platforms, where the cost of incompatibility is expressed in direct financial loss and, in some cases, regulatory exposure. Second, change-effect metrics—Change Impact Factor (CIF) and Modifiability Index (MI)—were introduced to quantify reliability and the controllability of evolution procedures, moving compatibility control from an expert-only domain into a measurable plane. Third, the practical viability of combining binary serialization formats (Avro, Protobuf) with schema registries was demonstrated as a technological basis for automated compatibility control, supporting disciplined version propagation and reducing the likelihood of latent breaking changes in asynchronous transport loops.
The applied value of the proposed approach is determined by the ability to integrate the version-orchestration model into existing CI/CD processes, where formal compatibility verification can act as a quality gate before changes reach production. This supports not only the prevention of incompatible modifications, but also a reduction in the cost of maintaining integrations, which in large corporate programs can reach $70,000 per month. Additional effects emerge from combining Saga, Outbox, and idempotent consumer patterns with schema registries, yielding the architectural plasticity required to satisfy supervisory requirements (in particular, CBUAE expectations in the UAE) and to scale business operations without losing control over contract dependencies.
A forward-looking direction for further development is associated with the use of deep learning methods for predictive assessment of the impact of contract changes on the properties of distributed systems, including performance and resilience under degradation. Such methods could complement formal compatibility criteria with probabilistic risk models, improving decision accuracy in version orchestration under real-world uncertainty.
References
- Yaroshynskyi, M., Puchko, I., Prymushko, A., Kravtsov, H., & Artemchuk, V. (2025). Investigating the evolution of resilient microservice architectures: A compatibility-driven version orchestration approach. Digital, 5(3), 27. DOI: 10.3390/digital5030027
- Event-driven architecture style | Microsoft Learn. Retrieved from: https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/event-driven (date accessed: October 2, 2025).
- Gintoro, Gaol, F. L., Fajar, A. N., Girsang, A. S., & Matsuo, T. (2025). Microservices design pattern in action: Improving modifiability in microservices-based software development. IEEE Access. DOI: 10.1109/ACCESS.2025.3610272
- Yaroshynskyi, M., Puchko, I., Prymushko, A., Kravtsov, H., & Artemchuk, V. (2025). From breaking changes to resilient digital services: A framework for orchestrating microservice API versions (Preprint). Preprints.org. DOI: 10.20944/preprints202507.0710.v1
- Cloud Native Computing Foundation. (2025). State of cloud native development Q1 2025. Retrieved from: https://www.cncf.io/reports/state-of-cloud-native-development-q1-2025/ (date accessed: October 4, 2025).
- What is the API maturity model? | IBM. Retrieved from: https://www.ibm.com/think/topics/api-maturity-model (date accessed: December 3, 2025).
- Open banking API development: Key features & best practices | Zymr. Retrieved from: https://www.zymr.com/blog/open-banking-api-development-a-complete-guide (date accessed: October 8, 2025).
- Jayasuriya, D., Terragni, V., Dietrich, J., & Blincoe, K. (2024). Understanding the impact of APIs behavioral breaking changes on client applications. Proceedings of the ACM on Software Engineering, 1(FSE), 1238–1261. DOI: 10.1145/3643782
- Ben Fekih, R., Lahami, M., Bradai, S., & Jmaiel, M. (2025). Formal verification of ERC-based smart contracts: A systematic literature review. IEEE Access. DOI: 10.1109/ACCESS.2025.3527158
- Schema registry serdes developers guide | Confluent Documentation. Retrieved from: https://docs.confluent.io/platform/current/schema-registry/serdes-develop/index.html (date accessed: October 10, 2025).
- JSON Schema serializer | Confluent Documentation. Retrieved from: https://docs.confluent.io/platform/current/schema-registry/serdes-develop/serdes-json.html (date accessed: October 12, 2025).
- Enriched categories, quantales, and applications. University of Pennsylvania ScholarlyCommons. Retrieved from: https://repository.upenn.edu/server/api/core/bitstreams/34d666b3-dafe-45b0-8d30-3bb52a3f9815/content (date accessed: October 14, 2025).
- Vazou, N., Rondon, P., & Jhala, R. (2014). Refinement types for Haskell. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP ’14) (pp. 269–282). DOI: 10.1145/2628136.2628161
- Formal verification of stateful services with REST APIs using Event-B. (2018). In Formal methods and software engineering (Lecture Notes in Computer Science). DOI: 10.1007/978-3-030-02450-5_14
- Open finance regulation | CBUAE Rulebook. Retrieved from: https://rulebook.centralbank.ae/en/rulebook/open-finance-regulation-0 (date accessed: October 16, 2025).
- Roadmap | Open Finance UAE (CBUAE). Retrieved from: https://openfinanceuae.atlassian.net/wiki/spaces/OF/pages/6259008/Roadmap (date accessed: November 7, 2025).
- Cambridge Centre for Alternative Finance. (2024). The global state of open banking and open finance. Retrieved from: https://www.jbs.cam.ac.uk/faculty-research/centres/alternative-finance/publications/the-global-state-of-open-banking-and-open-finance/ (date accessed: October 18, 2025).
- AsyncAPI documentation | AsyncAPI. Retrieved from: https://www.asyncapi.com/docs (date accessed: October 20, 2025).
- Messages | MassTransit documentation. Retrieved from: https://masstransit.io/documentation/concepts/messages (date accessed: October 22, 2025).
- Kafka configuration | MassTransit documentation. Retrieved from: https://masstransit.io/documentation/configuration/transports/kafka (date accessed: October 24, 2025).
- Yu, S.-J. (2025). Automating contract-based design for cyber-physical systems (Technical Report No. UCB/EECS-2025-84). University of California, Berkeley. Retrieved from: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2025/EECS-2025-84.pdf (date accessed: October 26, 2025).
- Ghrist, R., Lopez, M., North, P. R., & Riess, H. (2025). Categorical diffusion of weighted lattices (arXiv:2501.03890). DOI: 10.48550/arXiv.2501.03890
- McKinsey & Company. (2025). The 2025 McKinsey global payments report: Competing systems, contested outcomes. Retrieved from: https://www.mckinsey.com/industries/financial-services/our-insights/global-payments-report (date accessed: October 28, 2025).
- King, M. R., & Chatfield, S. (2025, February 13). How sales teams can use Gen AI to discover what clients need. Harvard Business Review. Retrieved from: https://hbr.org/2025/02/how-sales-teams-can-use-gen-ai-to-discover-what-clients-need (date accessed: October 30, 2025).
- Schema Registry | Confluent Documentation. Retrieved from: https://docs.confluent.io/platform/current/schema-registry/index.html (date accessed: November 1, 2025).
- Best practices for evolving schemas in schema registry | Solace Documentation. Retrieved from: https://docs.solace.com/Schema-Registry/schema-registry-best-practices.htm (date accessed: November 9, 2025).
- Schema compatibility and evolution | Confluent Documentation. Retrieved from: https://docs.confluent.io/platform/current/schema-registry/fundamentals/schema-evolution.html (date accessed: November 11, 2025).
- Swamy, N., Hrițcu, C., Keller, C., Rastogi, A., Ahmad, M., & Datta, A. (2016). Dependent types and multi-monadic effects in F*. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16) (pp. 256–270). DOI: 10.1145/2837614.2837655
- Sagas | MassTransit documentation. Retrieved from: https://masstransit.io/documentation/patterns/sagas (date accessed: November 13, 2025).
- Transactional outbox pattern | Microsoft Azure Architecture Center. Retrieved from: https://learn.microsoft.com/en-us/azure/architecture/patterns/transactional-outbox (date accessed: November 15, 2025).
- Open finance and open banking in the UAE: What you need to know | Pinsent Masons. Retrieved from: https://www.pinsentmasons.com/out-law/guides/open-finance-open-banking-uae (date accessed: November 17, 2025).
- .NET microservices: Architecture for containerized .NET applications | Microsoft Learn. Retrieved from: https://learn.microsoft.com/en-us/dotnet/architecture/microservices/ (date accessed: November 19, 2025).
- Khati Chhetri, S. (2024). Comparative study of front-end frameworks: React and Angular (Bachelor’s thesis). Oulu University of Applied Sciences. Retrieved from: https://www.theseus.fi/bitstream/10024/865488/2/Khati%20Chhetri_Sanjay.pdf (date accessed: November 21, 2025).
- Maanonen, T. (2024). Consumer-driven contract testing for microservices: Practical evaluation in a distributed organization (Master’s thesis). Aalto University. Retrieved from: https://aaltodoc.aalto.fi/bitstreams/e035e9e7-b7a8-43c2-8c37-8020ae36dfee/download (date accessed: November 23, 2025).
- CommaSuite: Monitoring and testing of OpenAPI and AsyncAPI software interfaces. (2025). DOI: 10.1145/3652620.3689047