Kontakt
stefan.bente[at]th-koeln.de
+49 2261 8196 6367
Discord Server
Prof. Bente Personal Zoom
Adresse
Steinmüllerallee 4
51643 Gummersbach
Gebäude LC4
Raum 1708 (Wegbeschreibung)
Sprechstunde nach Vereinbarung
Terminanfrage: calendly.com Wenn Sie dieses Tool nicht nutzen wollen, schicken Sie eine Mail und ich weise Ihnen einen Termin zu.

GP »Do’s and Don’ts in Event-Driven Architecture - A Summary« (SS24)

When making decisions within a software architecture, there is no right or wrong, there are only trade-offs. This also applies to the communication between microservices. As it turns out, it’s noticeably difficult to switch from a synchronous to an event-based architectural style. It seems that our “software education” is preparing us to think in a synchronous request / reply pattern. When switching to an asynchronous implementation, this mental model needs to be overcome, or else we’ll implement a synchronous communication pattern using asynchronous technology - and therefore will not work truly event-based.

Keywords
event-driven architecture, domain-driven design, microservice, eCommerce, software architecture
Study Program and Module Description
Master Digital Sciences (specialization Software Architecture) (see also module description in the study program web site)
Begin/End and Scheduling
End of March - August 2024. Organized as an agile project with sprints every 2 weeks. Workload depends on the type of project, will be clarified at kickoff.
Location
Room: 1708 (Building LC4 (library building). Room 1708 is our lab office space, with enough room for small workshops. However, the room is only accessible with by transponder. Thereore, please be at the door left of the library entrance (where you see the label "Kriminalkommissariat", since the Gummersbach police criminal investigation unit is our office neighbour :-). I will fetch you there. Call me (+49 176 8072 2689) or a fellow student by mobile phone in case you should run late), see also detailed directions
Video conference link: https://th-koeln.zoom-x.de/j/4425088059?pwd=K3hQOXRFa0YzUmZYSVRIejlZRklKdz09&omn=63215898401 (only in exceptional cases and if explicitly communicated in advance for the day)
Miro Board used for brainstorming and planning our deliverables
During the module, you can use this Miro Board.
Discord Server for fast Communication
Discord has been proven as a very effective platform for information sharing, discussions, and consultations. Therefore, please join the ArchiLab Discord Server at https://discord.gg/YYNYb5whU8. Navigate to channel #rollenzuweisung and click on gp. Then you automatically get access to the channel(s) relevant for this module.

Problem Description

In two earlier modules – a CEX paper in WS 22/23 (topic 6), and a Guided Project in WS 23/24 – we have been working on a sample application in the eCommerce domain. The goal was to explore the nitty-gritties of this architectural style. It is now time to take it to the next level – and to sum up our experiences.

Project Definition

In this project, we will build upon the code developed in the earlier projects. We’ll try to look at one more aspect that we couldn’t cover in the previous iterations due to time constraints: Handling of large transactions across aggregate borders.

To do so, we will implement one more business feature that requires such a transaction (including the measures to roll it back in case of failure).

The experiences gathered in the implementation of that additional feature will be added to the pool of learnings, do’s and don’ts, caveats, and good practices collected in the earlier stages. Using these experiences, the project team will organize and conduct two events:

  • A lecture at the Digital Exchange conference on June 22nd in Gummersbach, with the same title as this Guided Project
  • An internal or open developer event at ThoughtWorks, Köln, on the topic of Do’s and Don’ts in Event-Driven Architecture

Project Outcomes

A major part of this project will be about reflecting on our experience, and transform it into presentable material. The outcomes have been defined above.

Learning Outcomes

  • Understanding what event based communication truly is
  • Knowledge about microservice architectures
  • Tradeoff for asynchronous communication between microservices with event-based message brokers
  • Testing in an asynchronous environment (e.g. unit tests, integration tests, end2end, …)
  • Knowledge in the Dev-Ops approach
  • Learning from practitioners
  • Reflecting on architecture styles, and presenting the own conclusions to a community of peers

Requirements for Participating

  • Willingness to reflect on architectural styles and patterns, and present them in lecture / workshop format
  • You don’t have to have participated in the earlier project(s), although of course it helps. If you haven’t done so, you need:
  • Solid coding experience in Java, .NET Core, or any other language suitable to implemented a microservice
  • Interest in architecture patterns and good practices in coding
  • Frontend or backend experience
  • Experience with an event broker (Kafka) helps, but is not a must
  • Willingness to discuss patterns in the team, and to delve into an existing code base

External Project Partner

ThoughtWorks, with Wolf Schlegel working for thoughtworks.com

Grading

The grading for this Guided Project will follow the general grading scheme for Guided Projects outlined here.

Both the quality and the effort part of the grading will be based on

  • general code quality (clean code rules, SOLID principles, clean implementation of DDD building blocks), according to a code review, and
  • the project outcomes listed above.

Workshops

Mon 25.03.2024, 10:00 - 12:30: Kickoff Workshop

We brainstorm our findings so far, and plan our actions in the project.

Workshop Location

Video conference link: https://th-koeln.zoom-x.de/j/4425088059?pwd=K3hQOXRFa0YzUmZYSVRIejlZRklKdz09&omn=63215898401 .

Goal of the day

The project is set up and ready to start.

Task until next workshop

Sat 22.06.2024, 10:00 - 17:00: Digital Exchange Conference

In this conference, the participants of this project will present their findings to a broader audience.