Event-Driven Architecture Patterns for Real-Time, Reactive Systems
DOI:
https://doi.org/10.63282/3050-922X.IJERET-V3I3P111Keywords:
Event-Driven Architecture, Real-Time Systems, Reactive Systems, Event Sourcing, Microservices, Apache Kafka, Scalability, ResilienceAbstract
Systems are becoming more expected, in today’s context of digital transformation, to be able to respond sharply, scale, and be resilient. In real-time and reactive systems, Event-Driven Architecture (EDA) has become a powerful model for designing such systems. This paper discusses the impact of EDA patterns in creating systems that meet the needs of just-in-time responsiveness, fault tolerance, and seamless scalability. The paper critically analyzes through an in-depth exploration the integration of the various parts of EDA, namely the event producers, consumers, brokers and processing engines, to handle asynchronized communications, minimization of coupling and amplification of scale through their collaboration. The importance of contemporary technologies, such as Apache Kafka, AWS Lambda, and serverless computing, in the real-time processing of events is discussed. We introduce different variants, such as Event Notification, Event-Carried State Transfer, and Event Sourcing, that can be used to solve the various needs of a system. Another area explored by the study is the combination of EDA and microservices with reactive programming principles, which demonstrates its potential in creating connected, responsive, and resilient systems. Through a simulated real-time data pipeline, experimental evidence suggests that it is possible to achieve improvements in latency, throughput, and failure recovery. Lastly, the paper concludes with best practices, design guidelines, and future research on EDA-based real-time systems
References
[1] Hohpe, G., & Woolf, B. (2004). Enterprise integration patterns: Designing, building, and deploying messaging solutions. Addison-Wesley Professional.
[2] Michelson, B. M. (2006). Event-driven architecture overview. Patricia Seybold Group, 2(12), 10-1571.
[3] Kreps, J., Narkhede, N., & Rao, J. (2011, June). Kafka: A distributed messaging system for log processing. In Proceedings of the NetDB (Vol. 11, No. 2011, pp. 1-7).
[4] Jonas, E., Schleier-Smith, J., Sreekanti, V., Tsai, C. C., Khandelwal, A., Pu, Q., ... & Patterson, D. A. (2019). Cloud programming simplified: A Berkeley view on serverless computing. arXiv preprint arXiv:1902.03383.
[5] Tanenbaum, A. S., & Van Steen, M. (2017). Distributed systems (pp. 298-303). CreateSpace Independent Publishing Platform.
[6] Richards, M. (2015). Microservices vs. service-oriented architecture (pp. 22-24). Sebastopol: O'Reilly Media.
[7] Denis Baltor, From Event-Driven Architectures to Reactive Systems, Medium, 2021. online. https://dbaltor.medium.com/from-event-driven-architectures-to-reactive-systems-d78b62935d41
[8] Gorton, I., & Klein, J. (2014). Distribution, data, deployment: Software architecture convergence in big data systems. IEEE Software, 32(3), 78-85.
[9] Carbone, P., Katsifodimos, A., Ewen, S., Markl, V., Haridi, S., & Tzoumas, K. (2015). Apache Flink: Stream and batch processing in a single engine. The Bulletin of the Technical Committee on Data Engineering, 38(4).
[10] Mahmood, Z. (2011). Cloud computing for enterprise architectures: concepts, principles and approaches. In Cloud Computing for Enterprise architectures (pp. 3-19). London: Springer London.
[11] Pautasso, C., Zimmermann, O., & Leymann, F. (2008, April). Restful web services vs." big" web services: making the right architectural decision in Proceedings of the 17th international conference on World Wide Web (pp. 805-814).
[12] Lev-Ami, T., & Tyszberowicz, S. S. (2003). Reactive and real-time systems course: How to get the most out of it. Real-Time Systems, 25(2), 231-253.
[13] Clark, T., & Barn, B. S. (2011, December). Event-driven architecture modelling and simulation. In Proceedings of 2011 IEEE 6th International Symposium on Service Oriented System (SOSE) (pp. 43-54). IEEE.
[14] Chandy, K. M. (2016). Event-driven architecture. In Encyclopedia of Database Systems (pp. 1-5). Springer, New York, NY.
[15] Koetter, F., & Kochanowski, M. (2015). A model-driven approach for event-based business process monitoring. Information Systems and e-Business Management, 13(1), 5-36.
[16] Fournier, F., Kofman, A., Skarbovsky, I., & Skarlatidis, A. (2015, March). Extending Event-Driven Architecture for Proactive Systems. In EDBT/ICDT Workshops (pp. 104-110).
[17] Taylor, H. (2009). Event-driven architecture: how SOA enables the real-time enterprise. Pearson Education India.
[18] Chen, P., Kirkpatrick, D. A., & Keutzer, K. (2001, March). Scripting for EDA tools: a case study. In Proceedings of the IEEE 2001. 2nd International Symposium on Quality Electronic Design (pp. 87-93). IEEE.
[19] Saxena, S., & Gupta, S. (2017). Practical real-time data processing and analytics: distributed computing and event processing using Apache Spark, Flink, Storm, and Kafka. Packt Publishing Ltd.
[20] Richards, M., & Ford, N. (2020). Fundamentals of software architecture: an engineering approach. O'Reilly Media.
[21] Pappula, K. K., & Rusum, G. P. (2020). Custom CAD Plugin Architecture for Enforcing Industry-Specific Design Standards. International Journal of AI, BigData, Computational and Management Studies, 1(4), 19-28. https://doi.org/10.63282/3050-9416.IJAIBDCMS-V1I4P103
[22] Rahul, N. (2020). Vehicle and Property Loss Assessment with AI: Automating Damage Estimations in Claims. International Journal of Emerging Research in Engineering and Technology, 1(4), 38-46. https://doi.org/10.63282/3050-922X.IJERET-V1I4P105
[23] Enjam, G. R., & Chandragowda, S. C. (2020). Role-Based Access and Encryption in Multi-Tenant Insurance Architectures. International Journal of Emerging Trends in Computer Science and Information Technology, 1(4), 58-66. https://doi.org/10.63282/3050-9246.IJETCSIT-V1I4P107
[24] Pappula, K. K., & Anasuri, S. (2021). API Composition at Scale: GraphQL Federation vs. REST Aggregation. International Journal of Emerging Trends in Computer Science and Information Technology, 2(2), 54-64. https://doi.org/10.63282/3050-9246.IJETCSIT-V2I2P107
[25] Pedda Muntala, P. S. R. (2021). Prescriptive AI in Procurement: Using Oracle AI to Recommend Optimal Supplier Decisions. International Journal of AI, BigData, Computational and Management Studies, 2(1), 76-87. https://doi.org/10.63282/3050-9416.IJAIBDCMS-V2I1P108
[26] Rahul, N. (2021). AI-Enhanced API Integrations: Advancing Guidewire Ecosystems with Real-Time Data. International Journal of Emerging Research in Engineering and Technology, 2(1), 57-66. https://doi.org/10.63282/3050-922X.IJERET-V2I1P107
[27] Enjam, G. R. (2021). Data Privacy & Encryption Practices in Cloud-Based Guidewire Deployments. International Journal of AI, BigData, Computational and Management Studies, 2(3), 64-73. https://doi.org/10.63282/3050-9416.IJAIBDCMS-V2I3P108