Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

restructure "modularization and distribution" ... and a general remark on the curriculum's structure #50

Open
mrtnlhmnn opened this issue Jul 3, 2023 · 1 comment
Labels
change request Request for change of the curriculum segmentation-needed this issue needs to be split into separate topics

Comments

@mrtnlhmnn
Copy link

mrtnlhmnn commented Jul 3, 2023

Modularization and Distribution
Chapter 3 ("Modularisierung") needs to distinguish much more clearly between
a) internal modularization and
b) distribution.

Cf #35

ad a) Modularity inside a deployment monolith tackles the internal component-based structure - both taking the domain-specific ("fachliche") and technical structure into account.
So this should talk about component-based software, moduliths, concepts like Onion / Clean / Hexagonal architecture and DDD's tactical design.

ad b) Distributing the monolith into a distributed application is a separate, different step. With that, one gets into the wonderful and magical world of distributed systems. One has to deal with problems, challenges like latency, network issues, consistency, inter-service communication and all kinds of the https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
In the current curriculum, modularization is not well and really distinguishing between these two different steps and concepts a and b.


If this is better addressed, the chapter 4 ("Integration") should go with the chapter 3 b): Defining services, infrastructural concepts (ESB, Kafka, message bus, and challenges/issues like security, latency, communication and interaction, messaging, EAI patterns, quality of service, backpressure, DDD's strategic patterns etc. etc. etc.)


Chapter 5 and 6 - define as requirements
The current curriculum tackles a lot of different topics. From component-based construction over distribution up to operations.
The scope is not quite clear. FLEX's main topic should be "How to build and construct a flexible architecture - either as a mono/modulith or a distributed system".
The topics around "Installation / Rollout" (5) like CI/CD and "Operations" (6) should be addressed with that in mind - hence as requirements on what kind of architecture is needed and appropriate. These important topics should drive the architectural decisions as requirements.

The current curriculum addresses these topics quite waterfall-like. Example: When going from a mono/modulithic system to a distributed one, operations undersees a lot of challenges as such a distributed system is much harder to monitor and operate on. This aspect should go be addressed inside the chapter on distribution. But not as a separate topic later in the agenda.
(Yeah, I know that the training can sort topics differently than in the curriculum but still ...)

@aheusingfeld aheusingfeld added change request Request for change of the curriculum segmentation-needed this issue needs to be split into separate topics labels Sep 6, 2024
@aheusingfeld
Copy link
Member

@mrtnlhmnn this sounds very similar to #35. Can we combine these?

@aheusingfeld aheusingfeld added this to the release2024.2 milestone Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
change request Request for change of the curriculum segmentation-needed this issue needs to be split into separate topics
Projects
None yet
Development

No branches or pull requests

2 participants