Skip to content

Latest commit

 

History

History
121 lines (82 loc) · 6.18 KB

File metadata and controls

121 lines (82 loc) · 6.18 KB

This document outlines the key Event-Driven Architecture (EDA) patterns that will be incorporated into the game to teach players fundamental event-driven concepts, the rough sketches for the patterns, level transition ideas and the summary of all the works done during the LFX Mentorship- Design and Implement Levels for Educational Game.

Contents

A. Key EDA Patterns for the Game
B. Rough Sketches for the EDA Patterns
C. Level Transition Ideas
D. New Assets Created
E. Levels Implemented
F. Future Works
G. References used

A. Key EDA Patterns for the Game

1. Basic Event Flow

Concept: Events travel from sources to brokers and are eventually delivered to sinks.

2. Triggers and Filters

Concept: Events are processed based on specific conditions.

3. Event Transformation Pattern

Concept: Events can be modified before reaching their final destination.

4. Sequence Pattern

Concept: Events must pass through multiple steps in a predefined order before completion.

5. Retry Pattern

Concept: Failed events are retried to ensure eventual processing.

6. Dead Letter Queue (DLQ) Pattern

Concept: Events that fail multiple times are moved to a DLQ for manual review or alternative processing.

7. DataRef Pattern

Concept: Large event payloads are replaced with references to stored data to optimize processing.

8. Outbox Pattern

Concept: Ensures events are reliably recorded before being published, preventing data loss.

9. Multi-Broker Setup

Concept: Events can be routed through multiple brokers before final processing.

B. Rough Sketches for the EDA Patterns

1. Transformation Pattern

Sketch

Transformation Pattern Sketch

Reference

Transformation Pattern Reference

2. Sequence Pattern

Sketch

Transformation Pattern Sketch

Reference

Transformation Pattern Reference

2. Dead Letter Queue Pattern

Sketch

Transformation Pattern Sketch

Reference

Transformation Pattern Reference

C. Level Transition Ideas

Level 1- Basic Event Flow

Basic Event Flow Level

Level 2- Using Filters

Using Filters

Level 3- Using Filters With Multiple Sinks

Using Filters With Multiple Sinks

Level 4- DLQ Pattern

DLQ Pattern

Level 5- Using Filters With Multiple Sinks and DLQ Pattern

Using Filters With Multiple Sinks and DLQ Pattern

Level 6- Transformation Pattern

Transformation Pattern

D. New Assets Created

Representation of Blockage and Dead Letter Sink. (#25 , #34)

Representation of Transformation Function. (#25 , #34)

E. Levels Implemented

Level 1- Basic Event Flow (#36)

Level 2- Using Filters (#36)

Level 3- Using Filters With Multiple Sinks (#36)

Level 4- DLQ Pattern (#28)

F. Future Works

Design a representation of Broker

Currently, the game has all the logic of a broker, however, it lacks a representation. The next task could be designing a representation of a broker and attach the necessary scripts containing the logic to the asset representing the broker.

Implement the Patterns and Levels already designed

The Transformation and Sequence pattern were designed in the mentorship, along with level transition ideas for these patterns. The level combining Multi Sink and DLQ Pattern was also designed. These patterns and levels will be implemented in the future.

Design and Implement the remaining key EDA Patterns

Other EDA Patterns like the DataRef Pattern and Outbox Pattern will be designed and implemented in the future.



This is the summary of the work done during the LFX Mentorship- Design and Implement Levels for Educational Game.
Mentee- Ankita Jana.
Mentor(s)- Calum Murray, Zainab Husain, Angelina Zhai.

G. References used:

  1. Declarative Event-Driven-Application Patterns with Knative Eventing - Pierangelo Di Pilato & Matthias Wessendorf
  2. Gamifying Cloud Native: How to Design and Build an Educational Game for Your Project - Calum Murray, University of Toronto, Faculty of Applied Science and Engineering & Zainab Husain, OCAD University
  3. Enterprise Integration Patterns- Messaging Patterns
  4. Knative Eventing Documentation
  5. Godot 4.3 Docs