Next Article in Journal
Diabetes Prediction and Detection System Through a Recurrent Neural Network in a Sensor Device
Previous Article in Journal
Inverse-Time Overcurrent Protection Scheme for Smart Grids Based on Composite Parameter Protection Factors
Previous Article in Special Issue
PointFuzz: Efficient Fuzzing of Library Code via Point-to-Point Mutations
 
 
Article
Peer-Review Record

Root Contracting: A Novel Method and Utility for Implementing Design by Contract in Domain-Driven Design with Event Sourcing

Electronics 2025, 14(21), 4205; https://doi.org/10.3390/electronics14214205
by Chien-Tsun Chen 1,2, Yi-Chun Yen 2, Yu-Hsiang Hu 2 and Yu Chin Cheng 2,*
Reviewer 1: Anonymous
Reviewer 2:
Reviewer 3: Anonymous
Electronics 2025, 14(21), 4205; https://doi.org/10.3390/electronics14214205
Submission received: 24 September 2025 / Revised: 23 October 2025 / Accepted: 23 October 2025 / Published: 28 October 2025
(This article belongs to the Special Issue Software Engineering: Status and Perspectives)

Round 1

Reviewer 1 Report

Comments and Suggestions for Authors

The 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:

  1. Figures 7 and 8 should be converted to Tables, which will enable easier comprehension of data (results).
  2. Additional explanation is necessary for labels used for X axis in Figure 8 (require or ignore(pre), etc.).
  3. 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 Authors

This 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 Authors

In 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 Authors

The 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

Back to TopTop