REACTIVE PROGRAMMING AS AN EVOLUTION OF ARCHITECTURAL TRADE-OFFS IN MANAGING CHANGES
Abstract and keywords
Abstract:
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.

Keywords:
reactive programming, functional reactive programming, push model, pull model, dependency management, architectural patterns
Text
Text (RU) (PDF): Read Download
References

1. Moseley B., Marks P. Out of the Tar Pit, Proceedings of the BCS Software Practice Advancement Conference (SPA ‘2006), Bedfordshire, England, March 26–29, 2006. 66 p. Available at: http://curtclifton.net/papers/MoseleyMarks06a.pdf (accessed: April 26, 2026).

2. Goetz B., et al. Java Concurrency na praktike [Java Concurrency in Practice]. Saint Petersburg, Piter Publishing House, 2026, 464 p. (In Russian)

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. In: Masuhara H., et al. (eds) Proceedings of the 12th Annual International Conference on Aspect-Oriented Software Development (AOSD ‘13), Fukuoka, Japan, March 24–29, 2013. 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. Nurkiewicz T., Christensen B. Reaktivnoe programmirovanie s primeneniem RxJava. Razrabotka asinkhronnykh sobytiyno-orientirovannykh prilozheniy [Reactive Programming with RxJava: Creating Asynchronous, Event-based Application]. Moscow, DMK Press Publishing House, 2017, 358 p. (In Russian)

9. ReactiveX Observable Documentation. Available at: http://reactivex.io/documentation/observable.html (accessed: April 25, 2026).

10. RxJS API Docs. Available at: http://rxjs.dev/guide/overview (accessed: April 25, 2026).

11. Project Reactor Documentation. Available at: http://projectreactor.io/docs (accessed: April 25, 2026).

12. Kuhn R., Hanafee B., Allen J. Reaktivnye shablony proektirovaniya [Reactive Design Patterns]. Saint Petersburg, Piter Publishing House, 2018, 416 p. (In Russian)

13. Elliott C. M. Push-Pull Functional Reactive Programming. In: Weirich S. (ed.) Haskell 2009: Proceedings of the Second ACM SIGPLAN Symposium on Haskell, Edinburgh, Scotland, September 03, 2009. New York, Association for Computing Machinery, 2009, pp. 25–36. DOI:https://doi.org/10.1145/1596638.1596643

14. Kumar T. React. K vershinam masterstva: sozdanie bystrykh, proizvoditelnykh i intuitivno ponyatnykh veb-prilozheniy [Fluent React: Build Fast, Performant, and Intuitive Web Applications]. Astana, ALIST Publishing House, 2025, 368 p. (In Russian)

15. React DOM: React Reference Overview. Available at: http://react.dev/reference/react (accessed: April 26, 2026).

16. What is Angular? Available at: http://angular.dev/overview (accessed: April 26, 2026).

17. Angular Signals: In-depth Guides. Available at: http://angular.dev/guide/signals (accessed: April 26, 2026).

18. Solid Overview. Available at: http://docs.solidjs.com (accessed: April 26, 2026).

19. Signals: Preact Guide. Available at: http://preactjs.com/guide/v10/signals (accessed: April 26, 2026).

20. Svelte Overview: Svelte Docs. Available at: http://svelte.dev/docs/svelte/overview (accessed: April 26, 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. Available at: http://rethinkdb.com/docs/changefeeds/python (accessed: April 26, 2026).

23. Kafka Streams: Apache Kafka Docs. Available at: http://kafka.apache.org/43/streams (accessed: April 26, 2026).

24. Apache Flink Documentation. Available at: http://nightlies.apache.org/flink/flink-docs-stable (accessed: April 26, 2026).

Reviews
1. review
Authors: Ermakov Sergey

Login or Create
* Forgot password?