SOLVING PRODUCTIVITY PROBLEMS USING ASYNCHRONOUS METHODS IN JAVASCRIPT
DOI:
https://doi.org/10.26906/SUNZ.2025.4.078Keywords:
Data-Driven, Event-Driven, frontend, state, mutation, asynchrony, reactivityAbstract
The Data-Driven approach, in which the interface is defined as a function of the current state (UI = f(state)), has become the dominant practice in front-end development. Despite the convenience of the declarative approach, the complexity of systems has led to the identification of a number of architectural shortcomings. The main ones are the loss of transparency of the sources of changes, asynchronous conflicts when updating the state, and the lack of semantic context of events. The article compares the Data-Driven and Event-Driven approaches, explores the key problems of the former, and offers practical solutions that can improve control over application logic. The purpose of this work is to identify typical architectural shortcomings inherent in the Data-Driven model in client-side development, analyze the causes of their occurrence, and develop conceptual and technical ways to minimize the corresponding risks. Special attention is paid to the problems of implicit state mutation, loss of change context, query synchronization, and dependence on the component life cycle in framework-oriented systems. The following results were obtained: As a result of the study, it was found that the Data-Driven approach in complex applications does not provide sufficient control over the sources of changes. It was also proven that even when using tools such as Redux DevTools or React Developer Tools, the developer often does not have a complete picture of state changes, since they occur at different points in the system without a single control path. It was found that the most effective compensatory approaches are the creation of a semantic event layer, centralization of mutations, and the combination of reactive modeling with declarative representation. Conclusions. Data-Driven architecture significantly simplifies UI construction in the conditions of simple or medium-complexity projects. However, with an increase in the number of state sources, the complexity of the relationships between components, and a high level of asynchrony, such a model demonstrates structural limitations. In such conditions, it is advisable to switch to hybrid solutions that combine Data-Driven rendering with Event-Driven semantics and control through single mutation points.Downloads
References
1. Flutter. Flutter Architectural Overview. Flutter Documentation. URL: https://docs.flutter.dev/resources/architectural-overview
2. Beyer D., Ghanbari H., Hasselbring W. An empirical characterization of event‑sourced systems and their schema evolution— Lessons from industry. Journal of Systems and Software. 2021. Vol. 182:110931. DOI: 10.1016/j.jss.2021.110931. URL: https://www.sciencedirect.com/science/article/pii/S0164121221000674
3. Wikipedia. Reactive programming. URL: https://en.wikipedia.org/wiki/Reactive_programming
4. Yee M.-H., Badouraly A., Lhoták O., Tip F., Vitek J. Precise Dataflow Analysis of Event-Driven Applications. arXiv. DOI: 10.48550/arXiv.1910.12935. URL: https://arxiv.org/abs/1910.12935
5. E. Mutlu et al. Detecting JavaScript Races that Matter. FSE. URL: https://www.doc.ic.ac.uk/~livshits/papers/pdf/fse15.pdf
6. MDN. JavaScript execution model. URL: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Execution_model
7. Redux. Thinking in Redux: Three Principles. Redux Documentation. URL: https://redux.js.org/understanding/thinking-in-redux/three-principles
8. WHATWG. DOM Standard — Aborting ongoing activities (AbortController). WHATWG. URL: https://dom.spec.whatwg.org/
9. Vuex. Committing Mutations in Components. Vuex Guide – Mutations. URL: https://vuex.vuejs.org/guide/mutations.html#committing-mutations-in-components
10. Fowler M. Patterns of Enterprise Application Architecture. Addison‑Wesley Professional, 2003. Розділ 5, c. 63, available at: https://martinfowler.com/books/eaa.html
Downloads
Published
Issue
Section
License
Copyright (c) 2025 Oleksandr Zakovorotnyi, Oleskandr Sapalskyi

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.