Wednesday

Track 7

16:20 - 17:20 (UTC±00)

Talk (60 min)

Good Fences Make Good Neighbours

Modularity is a key aspect of software and architectural design, setting explicit boundaries between different parts of the system. But we have been banging on about this since the 70s, and still we are creating balls of mud and now even distributed big balls of mud. Either modularity as a concept is insufficient or maybe there are aspects here we seem to get wrong? We know that good fences make good neighbours, but only when the boundaries are placed correctly. How can we create robust and sustainable modular designs when identifying those boundaries are so challenging? In this talk, you are going to see the best bits of modularity from SOA, microservices, DDD, Team Topologies, and more. You will see how microservices improved physical modularity compared to SOA, but lost the connection to business capabilities and the related team structure by its focus on size. And you will see how DDD's bounded contexts can help us retain the benefits of microservices while reintroducing the connection to the business that SOA once had. Modularity in architecture is sociotechnical - the shape of the software and the shape of the organisation are highly interdependent and coevolving. So we will also see how Team Topologies provides a blueprint for aligning teams and architecture using patterns for identifying teams, shaping their interactions, and minimising cognitive load. In summary, this talk will help you piece together all of these good practices and understand the theory behind them, improving your holistic system design skills and enabling you to create conceptual integrity in your designs. Maybe this will guard you against the dreaded distributed big ball of mud.

Architecture
Microservices

Trond Hjorteland

Trond is an IT architect and aspiring sociotechnical systems designer from the consulting firm Scienta.no and has many years experience with large, complex, and business critical systems, primarily as a developer and architect on middleware and backend applications. His main interests are service-orientation, domain-driven design, event driven architectures, and sociotechnical systems, working in industries like telecom, media, TV, and public sector. Mantra: Great products emerge from collaborative design.