Highlights
- Architecture Capabilities
- Domain-Driven Design
- Communicating About Architecture
- Architectural Styles
- Example Scenario
- Separation of Concerns
- Architectural Topologies
- Documenting the Process Layer
- Agility and Architecture
- Architecture and Continuous Delivery
- Evolutionary Architecture
- Integration Styles
- Integration Challenges
- (Micro)Service Oriented Architecture
- Architecture and Business Strategy
Course Details
Architecture Capabilities
- Soft skills
- Technical skills
- Architecture decisions
- Design principles
- Guide technology decisions
- Architecture decisions & their justification
Domain-Driven Design
- The key to using a clear, unambiguous language
- Defining a Bounded Context
- Ubiquitous Language
- Model Driven Design
- Hands-on Modelers
- Refactoring towards Deeper insight
Communicating About Architecture
- Documenting architecture decisions
- Using a central document or wiki
- Establishing where decisions will be documented
- Involving the right stakeholders
- Informing Stakeholders
- Architecture Archaeology
- Update interesting historical artefacts
- Architecture pitfalls
- Importance of a clear goal
Architectural Styles
- Components vs Classes
- Component Types
- Hybrids & Variants
- Scaffolding vs Architecture Patterns
- Traditional layered Architecture
- Event-driven Architecture
- Microkernel architecture
- Sacrificial Architecture
- Layered architecture
Example Scenario
- Introducing the scenario
- Groundhog Day anti-pattern
- How to federate a hub
- Using dedicated broker instances
- Applying a centralized broker
- identify the conditions and constraints
- Types of client applications
- Analysing the options
- Broker usage and purpose
- Message throughput
- Internal application coupling
- Single point of failure
- Performance bottlenecks
- Centralized broker approach
Separation of Concerns
- Layers of isolation
- Hybrids and variants
- Layered architecture considerations
- Good general-purpose architecture
- Determining a good starting point for most systems
- The Architecture sinkhole anti-pattern
- Coexistence with Monolithic applications
Architectural Topologies
- Mediator topology
- Broker topology
- Event-driven architecture
- Mediator topology
- Events and Channels
- Impact of Event-driven architecture
Documenting the Process Layer
- Processes exposed as services
- Service contracts
- Contract creation, maintenance and versioning
- Process availability or unresponsiveness
- Reconnection logic on server restart
- Addressing failures
- The plug-in architecture patterns
- Applying business rules and logic
Agility and Architecture
- Agile methodologies
- Agility is not a substitute for architecture
- Documenting the Architecture
- Technical Writing Skills
- Know Your Audience
- The most important rule: revise!
- Big bang architecture
- Multiple transition architectures
Architecture and Continuous Delivery
- Let the architecture evolve
- Discover iteratively and learn more about the system
- Continuous Delivery
- Architecture is abstract until operationalized
- Mature engineering practices.
- Manage coupling intelligently
- The Delivery teams
- Constant flow of new features into production
- Continuous Integration
- Fast, automated feedback
- Deployment Pipeline
Evolutionary Architecture
- Enterprise Integration Patterns
- Integration Challenges
- Coordination challenges
- Latency issues
- The network and security
- Topology changes
- Increasing transport costs
- The network is not heterogenous
Integration Styles
- File transfer
- Shared database
- Remote procedure calls
- Messaging and invocation
- Integration simplicity
- System decoupling
- System abstraction
Integration Challenges
- Timeliness of data synchronization,
- Data-only transfer shared database
- Dear-universal integration via SQL
- Performance bottleneck issues
- Schema change and Data ownership issues
- Data encapsulation and ownership
- Web services
- Avoiding tight system coupling
(Micro)Service Oriented Architecture
- Synchronous and Asynchronous communication
- Reliable messaging
- Highly decoupled systems
- Achieving scalability
- Integration beyond the firewall
- Cross platform standards
- Which is the best service integration style?
- Presenting alternatives
- Articulate the pros and cons of each
Architecture and Business Strategy
- The Enterprise Operating Model
- Business Needs
- IT Capabilities
- Business Operations and IT Systems
- Infrastructure enterprise architecture
- Architecture Governance
Who should attend
This course is suitable for Software Developers and IT Professionals who need to learn the principles of Software Architecture in order to design flexible large-scale systems and oversee agile development of services that meet business needs.
Feedback
4.8 out of 5 average
"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"
Brian Leek, Data Analyst, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022