Root Contracting: A Novel Method and Utility for Implementing Design by Contract in Domain-Driven Design with Event Sourcing
Round 1
Reviewer 1 Report
Comments and Suggestions for AuthorsThe authors proposed a method for root contracting, and and Java open-source utility, called uContract that realizes root contracting, to ensure the correctness of aggregates in the context of building systems with event souring and DDD.
The authors present comprehensive overview of the research field and the state of the practice, leading to the clear motivation for designing their approach and software unitality.
Further, the elements of the method for Root Contracting are properly introduced and presented, followed with description of the developed utility uContract for root contracting.
The authors also presented an experiment for analyzing performance of their method and developed utility under four configurations. After that the authors compared their method and utility with other available solutions based on quality attributes.
The manuscript is well structured and written, and easy to follow.
Used references are adequate.
The following minor improvements of the manuscript are necessary:
- Figures 7 and 8 should be converted to Tables, which will enable easier comprehension of data (results).
- Additional explanation is necessary for labels used for X axis in Figure 8 (require or ignore(pre), etc.).
- In Discussion section (section 7), constraints/limitation of the proposed approach should be stated and discussed (if any had been detected), as well as how to overcome them.
Author Response
Please see the attachment.
Author Response File:
Author Response.pdf
Reviewer 2 Report
Comments and Suggestions for AuthorsThis study proposes root contracting, a lightweight adaptation of DbC for DDD systems using Event Sourcing. It defines correctness rules for aggregate roots and implements a Java utility called uContract to enforce preconditions, postconditions, and invariants without compiler modification. Experiments on ezKanban show that root contracting introduces minimal runtime overhead while improving model correctness and maintainability. Comparisons with existing DbC tools further demonstrate its simplicity, sustainability, and portability as a practical solution for correctness assurance in event-sourced architectures.
In general, the manuscript is written well but lacks comprehensive validation. It is suggested that the authors highlight the rarity of this approach more explicitly within the manuscript.
The Method is technically solid, though several aspects could be improved:
- Provide a clearer mapping between theoretical concepts and corresponding code.
- Include more detail on the enforcement mechanism (runtime vs compile-time).
- Clarify whether the approach is language-independent.
A short bridging paragraph, ideally accompanied by a simple diagram or class-level architecture figure between the Method and uContract sections, would help readers grasp the structure before examining the detailed code. A summary table linking methodological concepts to implementation would also improve readability.
In the Results, only execution time is reported, with no information on CPU utilisation or other performance metrics. The only comparison provided is with manual Java defensive coding. This section should also mention that a further baseline comparison follows in the next section.
Section 6 should be presented as a comparative evaluation rather than related work, as its current connection to the results appears weak.
The Discussion mainly restates the method and does not establish a strong link to Sections 5–6. The study measures only runtime overhead and omits other validation aspects, such as correctness verification or maintainability evaluation. Moreover, uContract is entirely runtime-based, whereas some modern DbC systems, OpenJML etc. also support compile-time contract verification, which could be acknowledged as a limitation.
Author Response
Please see the attachment.
Author Response File:
Author Response.pdf
Reviewer 3 Report
Comments and Suggestions for AuthorsIn this paper authors have explained uContract which automatically enable automated verification of event source aggregated. The paper is relevant to the objectives of the special issue.
The abstract is well written.
Introduction, Background and motivation sections are well written.
Experimental details are sufficiently documented.
The paper needs some work on structuring, e. g. section 5.3 and section 7 have same heading title, Section 6 is related work it should be moved to Section 3.
Discussion section refers back to the literature appropriately.
Author Response
Please see the attachment.
Author Response File:
Author Response.pdf
Round 2
Reviewer 2 Report
Comments and Suggestions for AuthorsThe paper has improved and most concerns have been addressed. However, for future work, I suggest that the authors:
- expand the validation to provide stronger evidence of robustness
- discuss more general limitations, not only those based on experimental results.
Author Response
Please see the attachment. Thank you.
Author Response File:
Author Response.pdf

