In this course, we cover topics like Microservices, CQRS, Hexagonal Architecture, Event Sourcing, System stability, Development quality, and more. [+]
To be a successful architect, one needs to know the pros and cons of different architectures and under what conditions they are applied in a project. In addition, a good knowledge of the development process and project support in production is also very valuable.
In this course, participants will learn about the pitfalls of misapplying an architecture style and applying it to the wrong problem. We’ll also cover topics like Microservices, CQRS, Hexagonal Architecture, Event Sourcing, System stability, Development quality, and more.
40% workshop / 60% lecture
Architecture and Architects
What is “architecture”?
What is good architecture?
Who is a good architect?
How to make a choice?
A path from Monolith to Microservices
Synchronous and Asynchronous communication
Commands vs Events
Big and Small Events
Messaging in Monolith
Event Choreography and Orchestration
Message Processing Order
Dealing with Errors
Two-phase Commit for sending Messages?
Domain Driven Design
Why use DDD?
How to discover a Bounded Context?
Coding your Architecture
Designing Aggregates and Value Objects
Choosing ID types (UUID, Long, etc.)
Ensuring Invariants in Domain Model
Separate Behavior and Persistence
Do Exceptions help?
Applying Hexagonal Architecture principles
Code quality automation
Task-based REST API
Dealing with Errors: Problem Details
Command Query Responsibility Segregation
Event Sourcing: advantages and challenges
Documenting your Architecture
Sharing main decisions
Continuous Integration and Continuous Deployment
Stability of your System
Common failures and stability antipatterns
Securing your System
Monitoring your System
Aspects of monitoring
Metrics to expose
Control in production
Vadzim PrudnikauArchitect / Team Lead / Senior Developer
Senior Java Developer, Team Lead, and Architect with 17 years experience (4 years in the Norwegian market) who believes that technical skills, self-education, being a good team player, and knowledge sharing are the keys to success.
Marek DominiakOwner of a Software Company / Architect / Lead Developer
Software developer and architect with 15 years of experience (10 years in the Norwegian market) mainly in Java World. Has experience in mentoring developers and with leading teams. His main focus is on creating sustainable solutions, learning about software craftsmanship, domain-driven design, and code quality.
During his career, Marek has completed many smaller and bigger projects that work in production, interviewed developers, handled communication with customers, helped to design architecture for whole systems and delivered them, and introduced many technologies proven in production. Occasionally Marek is a speaker at conferences related to software development (JDD conference, Warszawskie Dni Informatyki).
Find more about us at https://trainitek.com/about-us/