¸£ÀûÔÚÏßÃâ·Ñ

Study-Unit Description

Study-Unit Description


CODE CPS3241

 
TITLE Event-Driven Systems

 
UM LEVEL 03 - Years 2, 3, 4 in Modular Undergraduate Course

 
MQF LEVEL 6

 
ECTS CREDITS 5

 
DEPARTMENT Computer Science

 
DESCRIPTION This study-unit provides an introduction to designing and implementing Event-Driven Systems (EDS). EDS react to event streams, moving away from the classic request-response and database-centric patterns, offering a more dynamic and real-time system behaviour. By handling events in real-time, EDS can offer immediate feedback or action, which is crucial for time-sensitive tasks and dynamic user experiences. Components are loosely coupled, and so they can be updated or replaced independently without impacting the system while providing fault tolerance.

Message brokers, in the form of event streaming platforms, facilitate durable message storage and high-throughput event processing, providing the key underpinning to event-driven architectures (EDA). Reactive Programming is a natural fit for EDA, where the asynchronous processing of event streams with backpressure extends the event-driven concept to real-time user interfaces without overwhelming edge devices. Event Bridges enable the integration of legacy components into EDA, expanding the paradigm further into existing settings. As event streams become a first-class element, stream analytics with Complex Event Processing (CEP) and Stream Machine Learning (ML) identify patterns and trends in real-time directly on the core architectural element.

The characteristics of EDA make them attractive for cloud-native applications, and they have thus achieved mainstream status over other message-based alternatives over the years whenever high availability (HA) is needed. At the same time, the departure from classic architectural patterns requires revising the notions of scale, concurrency, consistency, system evolution and security, while idempotence also becomes a key element for transaction integrity.

Study-Unit Aims:

This study-unit introduces the concepts of Event-Driven Systems (EDS) along with practical case studies, specifically:

- Event-driven architectural components and patterns: Event Streams and their Producers, Consumers, and Brokers; Change Data Capture; Stateless vs. Stateful Event Processing; Event Collaboration; Command Query Responsibility Segregation; Event Sourcing; streams as Shared Source of Truth;
- Reactive programming concepts: Observer pattern, Asynchronous Operations, Backpressure;
- Stream analytics using Complex Event Processing and pre-trained Machine Learning models;
- Manage EDS: Scale, Concurrency, Consistency, System Evolution, Transaction Integrity and Security;
- Hands-on follow-up using the Apache Kafka/Spark/Flink, Java/Spring/WebFlux, JavaScript/React, RSocket and Kubernetes ecosystems.

Learning Outcomes:

1. Knowledge & Understanding:

By the end of the study-unit the student will be able to:

- Identify, describe and implement EDA elements and patterns;
- Appraise and compare EDA characteristics and properties with those of classic architectures;
- Integrate legacy applications into EDA;
- Describe and implement Reactive Streams concepts;
- Describe and implement Stream Analytics concepts.

2. Skills:

By the end of the study-unit the student will be able to:

- Design and implement applications as EDS for loose coupling, flexible evolution, scale, responsiveness, enhanced user experience, and resilience;
- Enhance EDS with stream analytics using Apache Spark/Flink for application observability, real-time business process tracking, anomaly/fraud/customer-churn detection, personalisation/recommendation, etc. and corresponding real-time dashboards;
- Integrate legacy applications with EDA using Apache Kafka and CDC connectors;
- Implement cloud-native applications and microservices deployed over Kubernetes clusters using Apache Kafka instances as event buses.

Main Text/s and any supplementary readings:

Main Texts:

- Aneesh, R. (2025). Building Distributed Systems: Designing scalable architectures with microservices, event-driven patterns, and robust deployment strategies. BPB Publications. ISBN: 978-9365898514.

Supplementary Readings:

- Hinkula, J. (2023). Full stack development with Spring Boot 3 and React: Build modern web applications using the power of Java, React, and TypeScript (4th ed.). Packt Publishing. ISBN: 978-1805122463.
- Kumar, M., & Singh, C. (2017). Building data streaming applications with Apache Kafka. Packt Publishing. ISBN: 978-1787283985.
- Meric, A. (2024). Mastering Spring Boot 3.0: A comprehensive guide to building scalable and efficient backend systems with Java and Spring. Packt Publishing. ISBN: 978-1803230788.

 
RULES/CONDITIONS Before TAKING THIS UNIT YOU MUST TAKE CPS1015 AND TAKE CPS2004 AND TAKE CPS2010

 
ADDITIONAL NOTES Pre-requisite Qualifications: Course entry requirements.

 
STUDY-UNIT TYPE Lecture and Tutorial

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Project Yes 100%

 
LECTURER/S

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2025/6. It may be subject to change in subsequent years.

/course/studyunit