Domain Driven Design & Microservices for Architects

Udemy Domain Driven Design & Microservices for Architects

Register & Get access to index
ondRWDf.jpg

Learn how to build Microservices applications starting with business analysis and domain driven design


What you'll learn
  • Domain Driven Design
  • Architecting Microservices Application
  • Design Patterns for building Microservices & Distributed systems
  • Event Driven Architecture
  • Developing API for Microservices
  • Event Storming
  • Develop a Business case for Microservices


Requirements
  • Understanding of software development practices
  • Basic knowledge JAVA or any other programming language

Description
PS: Focus is on designing Microservices not coding
  • No specific Microservices framework in use
  • All sample code is in plain JAVA to demonstrate/clarify understanding of DDD patterns, etc.
  • Models are developed in UML - using the PlantUML tool
  • PostgreSQL/MongDB/RabbitMQ/Kafka - free instances created on the cloud for demos & walkthroughs
PLEASE Do NOT join the course if you are looking for tutorials on Microservices Coding or specific framework!!!
What is this course about?
Microservices is a new way of building software in which an application is composed of an independent set of services. The biggest benefit of Microservices is that it enables an organization to transform at a very rapid pace. This speed to market is achieved due to the independent nature of the services that make up a Microservices application. Companies like Amazon, Netflix and Etsy have proven the value of Microservices beyond doubt.
Many organizations today are looking to adopt Microservices. These organizations are investing in technologies, tools, skills and are changing their software development and delivery processes as well. But still many organizations are failing to achieve the full benefits of Microservices; in fact many organizations feel that they have created technical debt by adopting Microservices.
So why is it that some organizations have been successful in adopting Microservices while others are not. One common aspect I have observed in companies that fail to adopt Microservices is that they treat Microservices as a purely technology initiative. They do not spend time in understanding the business aspects of their Microservices applications !!!

Microservices is NOT just about technology
The key element of the Microservices architecture is that services are Independent. This independent aspect of the service is what makes it possible for Microservices to change independently of other services. If scope of the microservices is leading to inter-dependencies between services then it would lead to a need for change coordination between teams which in turn will lead to the same problems we have with Monolithic applications !!! Release cycles will be longer and there will be no benefit of the adoption of Microservices.
To ensure that these is no interdependencies between Microservices, a Microservices architect needs to understand the domain and then decide on the boundary and scope of the Microservices. This is where Domain Driven Design comes into picture. Once the Microservices business boundaries are defined the services should be built using appropriate Microservices design patterns and technologies.
Teams working on Microservices should not just look at the technical aspects of the service but MUST keep in mind that there are other considerations that play a critical part in the success of Microservices initiative. In order to

Role of a Microservices Architect
An IT professional working in the role of Microservices architect is responsible for may aspects depending on the maturity of Microservices adoption in their organization. Here are the list of activities that the architects is responsible for:
  • Evaluate the business benefits of Microservices for their specific organization
  • Build a Business case for Microservices
  • Educate the Business & IT stakeholders on pros/cons of Microservices
  • Apply Domain Driven Design to demarcate the boundaries of Microservices
  • Define the domain model for the Microservices
  • Do the technical design of Microservices
  • Guide and Mentor the Microservices teams
  • Evaluate the technologies | frameworks for the realization of Microservices
  • Build proof of concepts to show how things work
How will this course help?
This course will help developers & architects in building skills needed for successful implementation of Microservices applications. It consists of a combination of concepts, UML modelling and working code to demonstrate the implementation of Microservices. Students will learn the concepts of Domain driven design by way of common industry examples and a case study (ACME travels).

Focus is on Architecture, Design and Development of Microservices.

1. Transformation & Microservices
2. Domain Driven Design
3. Applying the DDD strategic & tactical pattern
4. Event Driven Architecture
5. Event Storming
6. Data Management
7. Messaging
8. Distributed Transactions
9. API

IMPORTANT:
Code Samples

Focus is on the Microservices design not coding.
  • All of the sample code is in plain JAVA
  • Course does NOT cover any specific framework
  • SpringBoot is used in samples for API/GraphQL section
Please check out the course preview lectures before enrolling the course.
  • Review the topics covered
  • Make sure you understand instructor's accent

Pre-Requisites
  • Basic understanding of JAVA or any other programming language
  • Some experience with software development practices
PS:
Hand on part is optional but students are encouraged to do hands on tasks to get a better feel of the design patterns.
Who this course is for:
  • Software Developers
  • Software Architects
  • Product Managers
  • Students interested in Microservices
Author
TUTProfessor
Downloads
178
Views
1,587
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from TUTProfessor