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.
Agenda
- Discerning Coupling in software architecture
- Modularity & Granularity for microservices
- Data integrators and disintegrators
- Choosing appropriate databases
- Data updates and ownership
- Data access
- Communication: synchronous or asynchronous?
- Consistency: Atomic or eventual?
- Coordination: orchestration or choreography?
- Transactional sagas
- Build your own trade-off analysis
Testimonials
This workshop helps me to back up my architectural decisions with measurements and proofs rather than just by gut feeling.
– Anonymous post-workshop feedback
The workshop reinforces my learning in distributed systems and helps me to consider important aspects when designing the architecture in my business.
– Anonymous post-workshop feedback
Excellent concepts were introduced that I can use to evaluate and discuss architectural choices with colleagues. The workshop provided a vocabulary that makes these discussions easier.
– Anonymous post-workshop feedback