Friday afternoon 14:00 - 16:00 CET (UTC+1)
“Remember, always, that everything you know, and everything everyone knows, is only a model. Get your model out there where it can be viewed. Invite others to challenge your assumptions and add their own.” - Donella H. Meadows
As Domain-Driven Designers we know that modeling systems, even when we manage to extract the essence of the domain experts’ knowledge, is based on a multitude of assumptions - the system’s purpose, how the people will use the system and the current environment in which the system is embedded.
But assumptions about systems are not stable. They are just best guesses given a certain amount of knowledge at a specific point in time. The more we learn, the more we realize that some of our assumption might turn out differently than expected. Additionally, modern systems are nested within other complex & adaptive systems, i.e. organisations, and their non-linear and emergent behaviour can render once valid assumptions not only wrong, but even harmful. This can happen either instantaneous or gradually over time, or even both.
The primary way to recognize these behavioural changes are feedback loops. But what if these feedback loops are not sufficient anymore to detect when these assumptions are slowly failing? Now the systems might be used very differently from what they were initially intended for. This brings us to the core assumption of the proposed session: When new usage patterns emerge, we expect that the system’s messaging patterns change accordingly. This means that we are able to mine the vast information in message-driven systems to detect and make sense of these patterns.
This hands-on session is a collaborative experiment to see if we are able to apply temporal event-pattern recognition techniques and algorithms to messaging scenarios from example domains using actual runnable code. Are we able to consistently detect these newly emerging patterns? What can we observe when we turn the various knobs of the recognition parameters? What are the architectural requirements in order to enable this kind of anlysis? And what are the limitations of these approaches?
If this session interests you, please join me to find the answers to these questions together!
The workshop will use Miro.com.
To run the code examples, you’ll need:
Infinite State Machine
I am Thomas, and I design systems for people and computers for fun and profit!
My career has navigated me through various industries like Finance & Insurance, Medical, Automotive and Travel. I have been wearing many differently shaped hats over the last 15 years. From System Administration, Test Automation, Web Development, Software Architecture & Design, Product Design & Organisation Design, I can draw on a bit of experience that currently helps me every day as a Principal Solutions Architect FlixBus.
The biggest realization over the last few years is that the most important component of success is not running the latest distributed architecture in the cloud, but to enable people to work smart to manifest their ideas in helpful products. I want to share my experiences and hope that you can take away a bit of knowledge that can help you later.
It is impossible to design useful software without understanding the underlying forces driven by market conditions, competitors, business strategy and the actual people using or building the software. Hence, I firmly believe that a wider definition of system design is required to achieve an adaptive and evolvable environment of people, processes and technology that can react to changing conditions in our fast paced digital world.