Architecture: The Hard Parts

2 x 4 hours remote workshop with Zhamak Dehghani, Neal Ford, and Mark Richards

Architecture: The Hard Parts

Architecture: The Hard Parts

Zhamak Dehghani, Neal Ford, and Mark Richards

Online

Session Start End Timezone
November 19 14:00 18:00 CEST
November 20 14:00 18:00 CEST


Software architects have no clean, easy decisions: everything is a terrible tradeoff. Architecture has lots of difficult problems, which this platform-agnostic class highlights by investigating what makes architecture so hard. This hands-on, platform-agnostic architecture class goes beyond the fundamentals of software architecture and focuses on the really hard problems. This class focuses primarily on aspects of distributed architectures and on areas surrounding modularity versus granularity, the challenges of event-driven architectures (including difficult error handling issues), distributed architecture patterns and how to decouple services to achieve proper granularity. Architecture is full of hard parts; by attending this workshop you can gain the insights and techniques to make it just a little softer.

This class is divided into 2 main parts:

Part 1: Pulling Things Part (Modularity and Building Blocks)

Part 2: Putting Them Back Together (Patterns and Tradeoffs)

Pulling things apart (Part 1) focuses on how to break up systems and identify levels of modularity. However, once you’ve broken apart your systems, how do you tie them back together? Putting them back together (Part 2) focuses on just this - the techniques of how to do orchestration, workflows, and transactions, while keeping parts decoupled from one another.

Part 1: Pulling Things Apart (Modularity and Building Blocks)

Architectural Modularity

  • Modularity vs. Granularity
  • Drivers for Modularity

Components as Architecture Building Blocks

  • Component Definition
  • Coupling Types
  • Connascence
  • Connascence Properties
  • Abstractness vs. Instability (Main Sequence)
  • Component Cohesion
  • Modern Connascence

Architecture Quantum

  • What is an Architectural Quantum?
  • Why are Quanta so Important to Architecture?
  • Examples of Architecture Quantum

Architecture Kata Exercises #1 - Breaking Apart The System

Modularity vs. Granularity

  • Determining The Right Level of Granularity
  • Service Granularity Drivers
  • Service Granularity Factors

Architecture Kata Exercises #2 - Identifying Services

Breaking Apart Data

  • Drivers For Separating Data
  • Factors Impacting Data Separation

Architecture Kata Exercises #3 - Data Ownership and Bounded Contexts

Analytical Reporting Challenges

  • Issues with Data Warehouses
  • Issues with Data Lakes

Part 2: Putting Them Back Together (Patterns and Tradeoffs)

Synchronous vs. Asynchronous Communication

  • Quantum Separation
  • Messaging For East-West Communication
  • Leveraging Queues For Back Pressure
  • Leveraging Publish-Subscribe For Extensibility

Contract Management

  • Consumer-Driven Contracts
  • Value-Driven Contracts
  • GraphQL
  • Schemas

Data Access and Data Sharing Strategies

  • Interservice Communication
  • Data Replication
  • Replicated Caching
  • Data Domains

Architecture Kata Exercises #4 - Data Access Techniques

Orchestration and Workflow

  • Differences Between Orchestration and Choreography
  • Choreography Examples
  • Orchestration Examples
  • Workflow Patterns and Sagas

Architecture Kata Exercises #5 - Orchestration and Workflow

Data Mesh

  • Defining a Data Mesh
  • Data Mesh Concepts

Class Summary: Final Words of Advice

Zhamak Dehghani

About Zhamak Dehghani

Zhamak Dehghani works with ThoughtWorks as a principal consultant, with a focus on distributed systems architecture and digital platform strategy at Enterprise. She is a member of the ThoughtWorks Technology Advisory Board and contributes to the creation of the ThoughtWorks Technology Radar. Zhamak has worked as a software engineer and architect for 20 years in the areas of distributed computing communications, as well as embedded device technologies and she has contributed to multiple patents on embedded mobile sensing devices.


@zhamakd
Neal Ford

About Neal Ford

Neal is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a software company and a community of passionate, purpose-led individuals, who thinks disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He is an internationally recognized expert on software development and delivery, especially in the intersection of agile engineering techniques and software architecture. Neal has authored magazine articles, seven books (and counting), dozens of video presentations, and spoken at hundreds of developers conferences worldwide. His topics include software architecture, continuous delivery, functional programming, cutting edge software innovations, and includes a business-focused book and video on improving technical presentations. Check out his web site at nealford.com.


@neal4d
Mark Richards

About Mark Richards

Mark Richards is an experienced, hands-on software architect involved in the architecture, design, and implementation of microservices architectures, service-oriented architectures, and distributed systems in a variety of technologies. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. Mark is the founder of DeveloperToArchitect.com, a free website devoted to helping developers in the journey to becoming a software architect. He is the author of numerous technical books and videos, including the Fundamentals of Software Architecture, Software Architecture Fundamentals Video Series, and several books and videos on microservices as well as enterprise messaging. In addition to hands-on consulting, Mark is also a conference speaker and trainer, having spoken at hundreds of conferences and user groups around the world on a variety of enterprise-related technical topics.


@markrichardssa

Architecture: The Hard Parts

Zhamak Dehghani, Neal Ford, and Mark Richards

Online

Session Start End Timezone
November 19 14:00 18:00 CEST
November 20 14:00 18:00 CEST


Also check out