Chagoda, Vologda, Russian Federation
Russian Federation
The paper presents a study of the evolution of reactive programming models from the theoretical foundations of functional reactive programming to modern practical implementations in reactive thread libraries and UI frameworks. Purpose: to systematize approaches to dependency management and dissemination of changes in software systems. Methods: comparative analysis of architectural solutions in FRP, reactive flow libraries and UI frameworks. Results: it is shown that reactive models do not eliminate the complexity of managing changes over time, but redistribute it between the developer’s code, execution mechanisms, and development tools. The key differences between the push model based on explicit event propagation and subscription management and the pull model using automatic dependency tracking have been identified. Practical significance: it consists in clarifying the architectural trade-offs of various reactivity models in the development of user interfaces and server-side data processing systems.
reactive programming, functional reactive programming, push model, pull model, dependency management, architectural patterns
1. Moseley B., Marks P. Out of the Tar Pit // Proceedings of the BCS Software Practice Advancement Conference (SPA ‘2006) (Bedfordshire, England, 26–29 March 2006). 66 p. URL: http://curtclifton.net/papers/MoseleyMarks06a.pdf (data obrascheniya: 26.04.2026).
2. Java Concurrency na praktike = Java Concurrency in Practice / B. Getc [i dr.]; per. s angl. A. Logunova. SPb.: Piter, 2026. 464 s.
3. Meijer E. The Curse of the Excluded Middle // Communications of the ACM. 2014. Vol. 57, iss. 6. Pp. 50–55. DOI:https://doi.org/10.1145/2605176
4. Elliott C., Hudak P. Functional Reactive Animation // ACM SIGPLAN Notices. 1997. Vol. 32, no. 8. Pp. 263–273. DOI:https://doi.org/10.1145/258948.258973
5. Salvaneschi G., Mezini M. Reactive Behavior in Object-Oriented Applications: An Analysis and a Research Roadmap // Proceedings of the 12th Annual International Conference on Aspect-Oriented Software Development (AOSD ‘13) (Fukuoka, Japan, 24–29 March 2013) / H. Masuhara [et al.] (eds). New York: Association for Computing Machinery, 2013. Pp. 37–48. DOI:https://doi.org/10.1145/2451436.2451442
6. Wan Z., Taha W., Hudak P. Real-Time FRP // ACM SIGPLAN Notices. 2001. Vol. 36, no. 10. Pp. 146–156. DOI:https://doi.org/10.1145/507635.507654
7. Czaplicki E., Chong S. Asynchronous Functional Reactive Programming for GUIs // ACM SIGPLAN Notices. 2013. Vol. 48, no. 9. Pp. 411–422. DOI:https://doi.org/10.1145/2462156.2462161
8. Nurkevich T., Kristensen B. Reaktivnoe programmirovanie s primeneniem RxJava. Razrabotka asinhronnyh sobytiyno-orientirovannyh prilozheniy = Reactive Programming with RxJava: Creating Asynchronous, Eventbased Application / per. s angl. A. A. Slinkina. M.: DMK Press, 2017. 358 s.
9. ReactiveX Observable Documentation. URL: http://reactivex.io/documentation/observable.html (data obrascheniya: 25.04.2026).
10. RxJS API Docs. URL: http://rxjs.dev/guide/overview (data obrascheniya: 25.04.2026).
11. Project Reactor Documentation. URL: http://projectreactor.io/docs (data obrascheniya: 25.04.2026).
12. Kun R., Hanafi B., Allen Dzh. Reaktivnye shablony proektirovaniya = Reactive Design Patterns / per. s angl. S. Chernikova. SPb.: Piter, 2018. 416 s.
13. Elliott C. M. Push-Pull Functional Reactive Programming // Haskell 2009: Proceedings of the Second ACM SIGPLAN Symposium on Haskell (Edinburgh, Scotland, 03 September 2009) / S. Weirich (ed.). New York: Associationfor Computing Machinery, 2009. Pp. 25–36. DOI:https://doi.org/10.1145/1596638.1596643
14. Kumar T. React. K vershinam masterstva: sozdanie bystryh, proizvoditel'nyh i intuitivno ponyatnyh veb-prilozheniy = Fluent React: Build Fast, Performant, and Intuitive Web Applications / per. s angl. Astana: ALIST, 2025. 368 s.
15. React DOM: React Reference Overview. URL: http://react.dev/reference/react (data obrascheniya: 26.04.2026).
16. What is Angular? URL: http://angular.dev/overview (data obrascheniya: 26.04.2026).
17. Angular Signals: In-depth Guides. URL: http://angular.dev/guide/signals (data obrascheniya: 26.04.2026).
18. Solid Overview. URL: http://docs.solidjs.com (data obrascheniya: 26.04.2026).
19. Signals: Preact Guide. URL: http://preactjs.com/guide/v10/signals (data obrascheniya: 26.04.2026).
20. Svelte Overview: Svelte Docs. URL: http://svelte.dev/docs/svelte/overview (data obrascheniya: 26.04.2026).
21. Wingerath W., Ritter N., Gessert F. Real-Time and Stream Data Management: Push-Based Data in Research and Practice. Cham: Springer, 2019. 86 p. DOI:https://doi.org/10.1007/978-3-030-10555-6
22. Changefeeds in RethinkDB. URL: http://rethinkdb.com/docs/changefeeds/python (data obrascheniya: 26.04.2026).
23. Kafka Streams: Apache Kafka Docs. URL: http://kafka.apache.org/43/streams (data obrascheniya: 26.04.2026).
24. Apache Flink Documentation. URL: http://nightlies.apache.org/flink/flink-docs-stable (data obrascheniya: 26.04.2026).



