In den Zeiten von Microservices wird klar, wie wichtig Domain-Driven Design (DDD) nach wie vor ist. Denn nur mit Strategischem Design (also DDD im Großen) und dem Aufteilen der Domäne in Bounded Contexts kann ein sinnvoller (nämlich fachlicher) Schnitt für die Microservices gefunden werden.
In diesem Workshop nehmen wir uns einen Tag Zeit, um DDD näher anzuschauen. Der Workshop besteht aus abwechselnd Vortrag, Diskussion und Übungen.
Zielpublikum: Architekt:innen, Entwickler:innen,…
Applications, services, and systems are changing out of necessity because of the kinds of platforms that are available today: distributed and multi-core. Have you been curious about Reactive Architecture and Programming but haven't had time to dig in? Join this session.
Maximum number of participants: 75
Target Audience: Architects and Developers
Prerequisites: Java Programming
Level: Advanced
Extended Abstract:
Applications, services, and systems are changing out of necessity because of the kinds…
Domain-driven Design (DDD) erlebt gerade eine Renaissance: Es ist ein vielversprechender Ansatz für die Modularisierung großer Systeme und für Microservices. In der DDD-Praxis ergeben sich aber oft Missverständnisse und Herausforderungen. Dieser Vortrag greift die typischen Herausforderungen auf und zeigt mögliche Lösungen. Dabei geht es beispielsweise um organisatorische Auswirkungen, das Schneiden von Bounded Contexts, die möglichen Beziehungen zwischen Bounded Contexts und auch die…
Domain Storytelling ist eine Methode für Collaborative Modeling. Sie bringt Fachexpert:innen und Entwickler:innen zusammen und hilft ihnen, die Domäne zu verstehen, Grenzen zwischen Microservices zu finden und über Anforderungen zu sprechen.
Domain Storytelling heißt, dass wir unsere Anwender:innen Geschichten von ihren Aufgaben erzählen lassen. Beim Zuhören zeichnen wir die Geschichten mit einer grafischen Sprache auf.
Zielpublikum: Architekt:innen, Entwickler:innen, Projektleiter:innen,…
Software ist in nahezu allen Bereichen unseres Lebens unverzichtbar. Neben der Forderung, dass die Software fachlich tut, was sie soll, ist wichtig, dass unsere Softwaresysteme langfristig wartbar und erweiterbar bleiben.
In diesem Talk bekommen Zuhörende Anleitungen, Erkenntnisse, Hinweise und viele Beispiele aus der Praxis, wie die Techniken aus Domain-Driven Design für Softwaresysteme verwendet werden können, die über Jahre gewachsen und möglicherweise ohne Architekturverständnis entwickelt…
SOLID principles are well-known for designing object-oriented systems. But what if you are developing microservices? IDEALS, is yet another silly mnemonic acronym and are the core principles for microservice design. The acronym stands for: Interface segregation, Deployability, Event-driven, Availability over consistency, Low Coupling, and Single responsibility. We will relate these IDEALS to techniques, tools, technologies, and domain modeling principles we use today to develop modern…
Im Zuge unseres angestrebten Portfoliowandels hin zu Cloud-native Microservice Architekturen müssen auch wir Berge versetzen. DDD lässt sich in Bestandanwendungen leider nicht direkt in seinem vollen Umfang anwenden. Dennoch helfen die DDD-Methoden und Tools, um die Entwicklungen zielgerichteter und nachhaltiger zu gestalten. Dreh- und Angelpunkt unserer Modernisierung ist das kontinuierliche Optimieren der Bounded Contexts, um motivierte und leistungsfähige Teams zu erreichen. Ich berichte hier…
In an ever increasing need of remote work, we still need to envision new business models, explore our business processes and design our software systems. While nothing can replace the in person collaboration of an EventStorming, remote tools bring their own exciting upsides. During the lock down of the COVID-19 pandemic the DDD community experimented and distilled a collection of remote modelling methods. Let us together dive into some interesting trade-offs and find amazing new tools that carry…
Languages that raise the level of abstraction closer to the problem domain help improve quality and productivity. This can be best achieved when the language is directly based on the problem domain, not implementation concepts or existing languages. We describe how to create domain-specific languages in tight collaboration with domain expert users: as soon as a language concept is defined it can be immediately applied by users. We demonstrate this with examples from various fields, such as…
Ein halbes Jahrhundert der Software-Entwicklung ist von einem überraschenden Phänomen geprägt: Wir, die Entwickler:innen + Architekt:innen, haben nicht nur immer wieder neue Technologien und Architekturansätze geschaffen, sondern auch Methoden entwickelt, die über die reine Programmierung hinausgehen. Projektleiter, Anwender, Betrieb und Tester haben von unseren Innovationen profitiert. Dieser Vortrag berichtet über die erstaunlichen Beiträge, die unsere Disziplin konzipiert und entwickelt hat,…
Unter „Resilienz“ versteht man die Fähigkeit von Systemen, auch unter massiven Störungen von außen ihre Funktionsfähigkeit zu erhalten. Die Coronakrise mit ihren massiven Einschnitten und Opfern hat uns vor Augen geführt, dass Resilienz von Unternehmen entscheidend sein kann für das weitere Überleben. In diesem Vortrag betrachten wir Situationen, in denen Resilienz von besonderer Bedeutung ist, und leiten daraus ab, welche Voraussetzungen Unternehmen erfüllen müssen, um Resilienz zu zeigen.…
Der Trend zu hochskalierenden Cloud-Anwendungen, die auf datengetriebene Features setzen, ist ungebrochen und immer mehr Anwendungen laufen nur noch unter Eventual Consistency. Nebenläufige Änderungen auf inkonsistenten Daten können zu Replikations-Anomalien wie Lost Updates führen, deren Behandlung selbst für erfahrene Software-Architekt:innen eine Herausforderung darstellt. Der Vortrag vereint die neuesten Forschungsergebnisse und Lessons Learned aus mehreren Case Studies mit konkreten…
Spaghetti business is difficult enough to swallow without serving a plate of spaghetti architecture and another of spaghetti code. Consider some really hard problems with data and learn how to tackle them with a minimum of technical complexity. Vaughn demonstrates complex business scenarios with solutions using Reactive, DDD, events, and streaming, in a microservices-based distributed system, but with the edges whittled smooth. Join Vaughn as complexity is blown away like wood shavings in a fall…
DevOps as a software engineering practice unifies software development (Dev) and software operation (Ops). To assist with quality delivery in with DevOps you need to provide a “Quality Delivery Pipeline” to assure the delivery meets the requirements and proper validation and checks are done before releasing into full production. This talk will focus on the “Quality Delivery Pipeline” as a practice that can help sustain delivering with confidence by addressing important qualities in the pipeline.
…
There is an industry trend where businesses are moving towards autonomous product teams. These teams aim to be end-to-end responsible for the product they are building and maintaining. To achieve end-to-end team autonomy, companies move towards a microservices architecture to successfully inspect and adapt. However, to be successful organisations need to have the correct boundaries for the microservices. Using the bounded context pattern from Domain-Driven Design it is possible to achieve team…
In unserem Workshop werden wir:
* Die notwendigen Grundlagen erklären
* Ein kleines Aggregate mittels Event-Sourcing von Grund auf implementieren
* Es wird dabei vorwiegend "test-driven" (TDD) gearbeitet
Voraussetzungen:
* Grundverständnis taktischer DDD Patterns: Value Object, Event, Command, Entity/Aggregate
* Laptop mit IDE und Unit-Test-Framework
* Pair-Programming ist erwünscht
* Der Workshop ist unabhängig von Programmiersprachen
Maximale Teilnehmerzahl: 16
Zielpublikum: Architekt:innen,…