Full Course Description
Whether building a system from scratch, integrating a new system into an existing architecture, or refactoring a portion of a system to be more responsive, efficient, resilient, and scalable, there is great value in understanding Reactive Architectures specifically, distributed systems generally, and the methods, patterns, and technologies used to achieve either. This course will introduce participants to the key ideas, concerns about, and benefits available from Reactive Architecture.
The course begins by introducing Domain Driven Design (DDD). DDD is a design methodology detailed by Eric Evans which strives to address the complexity inherent in many software systems. That complexity is really a human problem. It is the breakdown in communication between the people operating and managing the processes enabled by the technology and the people who design and implement the technology. The place to address this complexity is during design - long before details are cemented in code.
Next, participants will learn about common sources of system failures and practical ways to mitigate and even eliminate these concerns. This will be demonstrated by a series of simulations against a real-world system. Students will see first hand how implementing even portions of reactive architectures can improve performance, scalability, resilience, issue resolution, and even delivery velocity.
Executives, Managers, Software Architects, and Business Analysts wanting to:
- Explore alternate approaches to integrating and building critical business systems by applying state of the art, industry proven techniques.
- Bridge the communication gap between business experts and technical professionals.
- Learn how reactive architectures address scalability, maintainability, extensibility, performance, and resilience.
- Experience integrating, supporting, and maintaining IT infrastructure and systems.
Participants will need:
- Pen and Paper
- Whiteboard and markers (shared) *optional
- A willingness to collaborate, learn, and share
- Welcome and introductions
- System architecture spectrum (pros and cons)
Monoliths (n-tiered architectures)
Service Oriented Architecture
- Course use case overview
- Domain Driven Design
Decomposing a domain
- The central cause of failure - contention
- Reactive Architecture
Reactive programming vs Reactive Architecture
- Lab: The Wheel of IT Nightmares