Child pages
  • The Microservice Dungeon


The Microservice Dungeon (WS 21/21)

"The Microservice Dungeon" is a large, interconnected project in WS 21/22, where four modules in three study programs interact. There will be ca. three months of joint preparation, and then we will have a 1.5 week Hackathon in January 2022 - with the goal to build a large microservice architecture, where robots swarm through a dungeon and fight each other.

Latest News

Optional weekly project Jour Fixe, each Thursday at 9:00. Whoever has questions, wants to discuss things, has issues to resolve, or just wants to stay in touch: Dial in at https://th-koeln.zoom.us/j/4425088059?pwd=K3hQOXRFa0YzUmZYSVRIejlZRklKdz09.


The Idea

In small teams (or as solo players) the students will implement autonomous robot swarms, who compete for resources (e.g. mining) and fight each other in a dungeon. Each robot swarm is a  microservice - with complete freedom of choice wrt. technology. Central services such as dungeon, mining exchange, bank, robot registry (and whatever else we need) each also are services.

Interaction with these central services will happen through synchronous via REST APIs. The robots additionally communicate asynchronously - for example, listening to events to follow the moves of their opponents. The individual teams keep their code secret, so they can implement sophisticated algorithms to "trick" others teams - so that they are able to cleverly secure resources, or attack others. In the game, an economy will be defined. I.e. everything costs - spawning new robots, moving robots, attacking, defending, etc. Money can be earned by mining, or by successful attacks. 

(Graduates of ST2 in SS20 will find this a bit familiar. In fact, the idea takes the practical assignment for ST2 to the next level: The goal is to implement a loosely coupled architecture according to DDD principles (i.e. a microservice application) in a realistic size.

Four coupled modules - and their roles

For this project, four modules in three study programs will come together - this is pretty new, complex, and innovative, even for ArchiLab standards (Lächeln). The students will take up different roles, as shown below.  

The modules / teams will have the following roles. 

Project Launch (PL), Code & Context, 5th semester

Project Launch (13 ECTS, in total 8 weeks fulltime, as a block module) is a 5th semester project in study program Code & Context. The particants will take the role of Dungeon Masters. As a  team of 4-5 students, they will design the gameplay - i.e. the rules of the game. How much do things cost? What revenue do you get from mining minerals? For how much can you buy new robots, or sell used weapons?

To ensure fair play, these rules will be kept a secret from the other teams. As an additional task, the project launch team will implement the dungeon service, which contains the dungeon structure and position of mineable ressources. 

Information about meetings, learning outcome, and grading can be found on the dedicated Project Launch page

Informatikprojekt (IP), Informatik Bachelor, 5th semester

The "Informatikprojekt" (computer science project) is a 10 ECTS (ca. 300h) 5th semester project in Informatik Bachelor study program. There will be ca. 15 participants, taking over a double role (see also the time schedule Miro board described below). 

  1. In the preparation phase (end of September ... end of December), the students will form teams of up to three persons, and implement the infrastructure for the dungeon. So they will be Dungeon Builders creating the central services. The actual dungeon layout and the rules are designed by the Dungeon Masters, but the Dungeon Builders implement the main part of it. 
  2. Then, during the competition, the Informatikprojekt becomes Codefighters - they implement robot swarms and steer them against the other teams.

Information about meetings, learning outcome, and grading can be found on the dedicated Informatikprojekt page

Microservice Architectures (MSA), Code & Context, 3rd semester

The course Microservice Architectures (3 ECTS, 2 weeks fulltime as a block module) from the study program Code & Context will also act as Codefighters. For time reasons, this course cannot participate in the preparation. Therefore, they will join in the competition phase. 

Information about meetings, learning outcome, and grading can be found on the dedicated Microservice Architectures page (will be added soon). 

Fachspezifischer Architekturentwurf / Domain-Driven Design (FAE / DDD), Master Computer Science / Master Digital Sciences

The Master modules Fachspezifischer Architekturentwurf (FAE) and Domain-Driven Design (DDD) from Master Computer Science (from WS21/22 onwards: Master Digital Sciences - Software Architecture) will take up the roles of Dungeon Architects. They will design the APIs and document the architecture decisions. In the competition phase, they will support the Coaches die anderen Teams unterstützen. 

Information about meetings, learning outcome, and grading can be found on the dedicated FAE/DDD page (will be added soon). 

Important Milestones

There is a Miro board describing the planned schedule for the project: https://miro.com/app/board/o9J_lyTMZfQ=/

Specification & Planning

The specification & planning phase lasts from 27.09. until 08.10.21. There are two major milestones: 

Event Storming (01. & 04.10.)

Event Storming is used to explore the domain, especially the domain events. This was scheduled on 01. and 04.10.21 at Schanzenstr. 22 (Code & Context location). The results are documented in this Miro board: https://miro.com/app/board/o9J_lsQV7ZA=/

Context Map & Services (08.10.)

On Fr 08.10., we will meet to derive the Context Map from the Event Storming results. The Context Map determines the general service layout (distribution of the overall functionality into a number of independent services). We will meet online, using the DDD/FAE Zoom link: https://th-koeln.zoom.us/j/86459424315?pwd=SGQra090M1B6eVJZcU1qQzZubkhDUT09.

The agenda for the day is as such:

TimeWhoWhat
10:00 - 11:00just DDD/FAE courseDiscussion of DDD/FAE role in the project (see also DDD/FAE page)
11:00 - 11:15*** break ***
11:15 - 11:30all (IP, PL, DDD/FAE)Introduction of gameplay documentation by PL
11:30 - 12:15all (in subgroups)Recap: Aggregates (going over the aggregates again, as there was the feedback during Event Storming that the aggregate phase was too short)
12:15 - 13:00*** lunch break ***
13:00 - 13:30allBrief introduction to Context Maps (by Prof. Bente)
13:30 - 14:15all (in subgroups)Subgroups working on Context Maps (each doing one)
14:15 - 14:45allContext Maps are presented
14:45 - 15:00*** break ***
15:00 - 16:00allCreation of Unified Context Map
16:00 - 16:30allDiscussion of next steps, esp. how to assign in subteams to the services derived from the Context Map

Implementation

As can be seen on the board, there is an implementationphase: 4 sprints, end of September to beginning of September.

Integration Test

The last sprint is reserved for an integration test.

8-day Hackathon & Fighting Arena in January 2022

Will happen from 5. - 14. January, the robot swarms will be implemented, and fight against each other. These dates need to be exclusively reserved by Informatikprojekt and FAE / DDD. (The Code & Context modules are in block format, anyway). 

Documentation & Final Presentation

After the Hackathon, there will be a final presentation by all teams (28.01.22)

Literature

If you want to prepare: In this project, you can apply your DDD and coding knowledge (... what you learnt in ST1 und ST2 ...) to a real application. The following books I can recommend. You can access online versions from the TH Köln VPN.