Get in touch


We use HubSpot CRM to process and manage contact and information requests. Please accept the "Functional Cookies" and reload the page to load the contact form.

Services / Software development & architecture

Strategic Software Architecture

0.5 - 1 days Remote
Inquire now

Challenges

Design of distributed applications need to be done wisely. Where Domain-Driven Design focuses on the tactical design of an application in one bounded context, strategic software architecture tackles the high-level design of distributed large-scale applications and enterprise architectures.

It is a pattern family focused on using and defining Bounded Context and thinking explicitly of the different relationship patterns and the required "translation" of similar "concepts" between the bounded contexts. It is helpful to argue and find a good strategic architecture in alignment with the requirements, the domain and by considering Conway's Law. A context map and a common conceptional core help to understand and improve the overall strategic picture. Especially with a microservice architecture in mind, it is important to define and connect services following the low coupling - high cohesion principles by identifying fitting bounded contexts.

Goal

This training provides an overview (high-level) of patterns and strategies in enterprise software architecture and development:

  • building distributed (microservice oriented) software
  • developing an enterprise architecture
  • thinking about how to “slice the elephant” and how to find useful bounded contexts for your software solution

Target group

  • Software Developers
  • Software Architects
  • QA Engineers
  • Product Owners

Feedback from participants of previous trainings on who can benefit from this training:

  • "Anyone working in software projects."
  • "Actually, every developer, tester and product owner should attend this training."
  • "Everyone close to software development with no prior knowledge about software architecture."

Content

1. Introduction

  • What is "good architecture"?
  • Strategical vs. tactical

2. Software Architecture Basics

  • Designing for Humans (Cognitive Psychology)
  • Organization vs. team structure (Conway's Law)
  • Software Qualities (“ilities”)
  • Resulting common principles for architecture

3. Strategic Domain Driven Design

  • DDD <-> SDDD​​​​​​
  • Bounded Contexts
  • Relationship Patterns
  • Flight Levels and Context Mapping

4. Architecture Styles

  • Enterprise Application Architecture 
  • Layered Architecture / "Pace Layered" Architecture
  • SOA Style
  • Microservices / Self Contained Systems
  • Pitfalls and Conclusion

5. Integration Patterns

  • Short history of integration techniques
  • Pros and Cons
    • Files
    • SharedDB
    • RPC
    • Event-Driven (Messaging)

6. Distributed Systems and Resilience Patterns

  • Distributed Systems
  • CAP Theorem
  • Resilience Patterns

7. Architecture Documentation

  • ADRs
  • Visualizations
  • arc42 Template

8. Summary

Organizational information

  • Duration: 1 day
  • Language: English or German, depending on preference
  • Location: Online or on site, depending on preference
  • Group size: from 5 to 10 participants
Christian Rathemacher

Christian Rathemacher

CEO / weltenbauer. SE
"What is Strategic Software Architecture, anyway?" Daniel Pötzinger and Stefan Rotsch explained the answer to us in an excellent workshop at the AOE Academy. The training is highly recommended for anyone who wants to know more about Domain-Driven Design, Conway's Law, or coupling software modules.

Goes well with...

For an introduction into tactical patterns of software development/architecture, please also attend “Tactical Software Architecture: Domain Driven Design” (in no particular order)

Jump to our training

Daniel Pötzinger

Our trainer: Daniel Pötzinger

Daniel Pötzinger has many years of experience in the development and architecture of Enterprise Web Applications. He has worked with many great self-organized agile teams and knows how collaboration and mutual inspiration – together with the right technologies and patterns – makes software projects successful and solving challenges fun. In addition, Daniel has comprehensive knowledge about how to establish DevOps and Continuous Delivery practices in IT organizations.
 
At AOE, Daniel has provided consulting services and helped implement more than 100 Enterprise projects for such renowned clients as Deutsche Telekom, congstar, Rovio, Cisco Webex, QVC and VMware.

Stefan Rotsch

Our trainer: Stefan Rotsch

Stefan Rotsch has many years of expertise in the development and architecture of complex web applications. As a Solution Architect at AOE, he analyzes and designs software projects in the telecommunications sector and accompanies customers and development teams from conception to successful go-live. He shares his experience in the field of agile software development with great success in various presentations at conferences and bar camps.