title
Microservices Design Patterns | Microservices Architecture Patterns | Edureka

description
** Microservices Architecture Training: https://www.edureka.co/microservices-architecture-training ** This Edureka's video on Microservices Design Patterns talks about the top design patterns you can use to build applications. In this video, you will learn the following: 1:29 Why do we need Design Patterns? 3:41 What are Design Patterns? 4:28 What are Microservices? 6:00 Principles behind Microservices 10:24 Microservices Design Patterns #edureka #microservicesedureka #microservicesdesignpatterns #microservices Join Edureka’s Meetup community and never miss any event – YouTube Live, Webinars, Workshops, etc. https://bit.ly/2EfTXS1 Subscribe to our channel to get video updates. Hit the subscribe button above: https://goo.gl/6ohpTV SlideShare: https://www.slideshare.net/edurekaIN Instagram: https://www.instagram.com/edureka_learning/ Facebook: https://www.facebook.com/edurekaIN/ Twitter: https://twitter.com/edurekain LinkedIn: https://www.linkedin.com/company/edureka How it Works? 1. This is a 4 Week Instructor-led Online Course. 2. We have a 24x7 One-on-One LIVE Technical Support to help you with any problems you might face or any clarifications you may require during the course. 3. At the end of the training, you will be working on a real-time project for which we will provide you a Grade and a Verifiable Certificate! --------------------------------------------------------------------------------- About Microservices Architecture Training Edureka’s Microservices Architecture training introduces you to the concept of Microservices that are small, lightweight, process-driven components. So, Microservices are the next important thing in designing scalable, easy-to-maintain applications. This not only makes application development easier but also offers great flexibility and lets you utilize various resources optimally. If you want to build an enterprise-ready implementation of the Microservices architecture, then this course is the first step for you! In this Microservices Architecture training, we will start by giving you a deep understanding of the core Microservices concepts and principle with insight in how they have evolved. We will walk you through the complete life cycle - from design to development to testing; including cross-layer concepts such as how to secure Microservices. ------------------------------------------------------------------------ What are the Objectives of our Microservices Architecture Training? After completing, Edureka's Microservice training, you will be able to: 1.Understand and differentiate between various Microservices Architectural styles 2.Apply Microservices Architecture principles 3.Know how to make the appropriate Microservice Architecture decision 4.Develop and test a Microservice 5.Know what technologies can be used to enable Microservices with an example --------------------------------------------------------------- Why should you go for Microservices Architecture Training? Microservices Architecture, or simply Microservices, is a unique method of developing software systems as a suite of independently deployable, small, modular services in which each service runs a unique process and communicates through a well-defined, lightweight mechanism to serve a business goal. Thanks to its scalability, this architectural method is considered ideal when you have to enable support for a range of platforms and devices spanning across the web, mobile, Internet of Things, and so on. Because of its flexibility, you can also use this method when you’re not sure what kind of devices you’ll need to support in an increasingly Cloud-based future. -------------------------------------------------------------------------------- What are the Pre-Requisites for Microservices Architecture Training ? There are no prerequisites for attending this Microservice course. Understanding of programming languages such as Java, basic understanding and familiarity with Spring Boot framework and building Java applications would be useful to execute Case Study and Project. ---------------------------------------------------------------------------------------------------- Who should go for this Microservices Architecture Training? 1.Application Architects 2.Software Architects 3.Application Developers 4.A developer working on Web, Cloud, Mobile, and other social technologies For more information, please write back to us at sales@edureka.in or call us at IND: 9606058406 / US: 18338555775 (toll-free)

detail
{'title': 'Microservices Design Patterns | Microservices Architecture Patterns | Edureka', 'heatmap': [{'end': 655.136, 'start': 625.791, 'weight': 0.821}, {'end': 822.853, 'start': 796.701, 'weight': 0.767}, {'end': 1378.654, 'start': 1351.756, 'weight': 0.762}, {'end': 1507.528, 'start': 1485.287, 'weight': 1}], 'summary': 'Covers microservices design patterns, team division, development processes, and architecture principles. it discusses challenges, principles, api gateway, asynchronous messaging, and database design patterns, emphasizing the need for design patterns to ensure uniformity and provide unique solutions.', 'chapters': [{'end': 86.899, 'segs': [{'end': 86.899, 'src': 'embed', 'start': 33.002, 'weight': 0, 'content': [{'end': 39.387, 'text': 'So in the session guys will discuss on the various design patterns that you can use while setting up an application using microservices.', 'start': 33.002, 'duration': 6.385}, {'end': 43.05, 'text': "So on that note, let's take a look at the topics for today's session.", 'start': 39.787, 'duration': 3.263}, {'end': 46.752, 'text': "So the topics for today's session are, as you can see on my screen,", 'start': 43.45, 'duration': 3.302}, {'end': 54.318, 'text': 'will start this session by understanding why do we need design patterns and then we look into what exactly design patterns are after that.', 'start': 46.752, 'duration': 7.566}, {'end': 59.362, 'text': "I'll tell you what are microservices and then I'll talk about the principles behind microservices.", 'start': 54.398, 'duration': 4.964}, {'end': 62.484, 'text': 'Once you understand the principles behind microservices.', 'start': 59.942, 'duration': 2.542}, {'end': 66.706, 'text': "I'll finally end the session by talking about the microservices design patterns.", 'start': 62.724, 'duration': 3.982}, {'end': 68.788, 'text': 'So I hope the agenda is clear to you guys.', 'start': 67.047, 'duration': 1.741}, {'end': 70.249, 'text': "All right, so that's great.", 'start': 69.288, 'duration': 0.961}, {'end': 72.69, 'text': 'So now, before I move forward with this session,', 'start': 70.509, 'duration': 2.181}, {'end': 79.574, 'text': 'I would like to request all of you to subscribe to our edureka YouTube channel to get daily notified on the top trending Technologies right?', 'start': 72.69, 'duration': 6.884}, {'end': 82.696, 'text': "So, on that note, let's get started with today's session.", 'start': 79.854, 'duration': 2.842}, {'end': 86.899, 'text': "So, the first topic for today's session is why do we need design patterns?", 'start': 82.956, 'duration': 3.943}], 'summary': 'Discussion on microservices design patterns and principles, including the need and overview of design patterns, microservices, and subscribing to the edureka youtube channel.', 'duration': 53.897, 'max_score': 33.002, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ33002.jpg'}], 'start': 11.269, 'title': 'Microservices design patterns', 'summary': 'Discusses the challenges and principles of using microservices and introduces the session on microservices design patterns, covering topics such as the need for design patterns and principles behind microservices.', 'chapters': [{'end': 86.899, 'start': 11.269, 'title': 'Microservices design patterns', 'summary': 'Discusses the challenges and principles of using microservices and introduces the session on microservices design patterns, covering topics such as the need for design patterns and principles behind microservices.', 'duration': 75.63, 'highlights': ['The session covers various design patterns to use while setting up an application using microservices, addressing the challenges faced by skilled professionals (quantifiable data: not provided).', 'The session introduces the need for design patterns and principles behind microservices, providing a structured agenda for the topics to be covered (quantifiable data: not provided).', 'The speaker encourages the audience to subscribe to the edureka YouTube channel for daily notifications on top trending Technologies (quantifiable data: not provided).']}], 'duration': 75.63, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ11269.jpg', 'highlights': ['The session covers various design patterns to use while setting up an application using microservices, addressing the challenges faced by skilled professionals.', 'The session introduces the need for design patterns and principles behind microservices, providing a structured agenda for the topics to be covered.', 'The speaker encourages the audience to subscribe to the edureka YouTube channel for daily notifications on top trending Technologies.']}, {'end': 268.157, 'segs': [{'end': 155.9, 'src': 'embed', 'start': 127.143, 'weight': 2, 'content': [{'end': 132.804, 'text': "So let's say the group 1 is following process 1, group 2 is following process 2 and group 3 is following process tree.", 'start': 127.143, 'duration': 5.661}, {'end': 137.587, 'text': 'Right now what can happen is that maybe process one works completely fine.', 'start': 133.184, 'duration': 4.403}, {'end': 141.95, 'text': "What I mean by that is that you know, there's no error and then whatever errors are coming.", 'start': 137.647, 'duration': 4.303}, {'end': 143.751, 'text': "Also, there's no latency time.", 'start': 142.09, 'duration': 1.661}, {'end': 146.934, 'text': "There's no disadvantage in using that kind of process, right?", 'start': 143.791, 'duration': 3.143}, {'end': 151.277, 'text': "But if you consider any other two processes, let's say process 2 and process 3,", 'start': 147.274, 'duration': 4.003}, {'end': 155.9, 'text': "it may happen that you know there could be few errors and maybe that's not the right way to build the application.", 'start': 151.277, 'duration': 4.623}], 'summary': 'Groups 1, 2, and 3 follow different processes, with potential errors and latency in processes 2 and 3.', 'duration': 28.757, 'max_score': 127.143, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ127143.jpg'}, {'end': 250.101, 'src': 'embed', 'start': 217.386, 'weight': 0, 'content': [{'end': 220.547, 'text': "So I hope you've understood what is the need of design pattern right?", 'start': 217.386, 'duration': 3.161}, {'end': 224.009, 'text': "So now let's understand what exactly design patterns are.", 'start': 220.907, 'duration': 3.102}, {'end': 225.91, 'text': 'With my previous explanation.', 'start': 224.509, 'duration': 1.401}, {'end': 231.852, 'text': 'You might have clearly understood that you know design patterns are basically a simple pattern based on which you build an application.', 'start': 225.95, 'duration': 5.902}, {'end': 234.714, 'text': 'But yet if I have to Define design patterns for you,', 'start': 232.212, 'duration': 2.502}, {'end': 246.999, 'text': 'then design patterns or software design patterns can be defined as a software template or a description to solve a problem that occurs in multiple instances while designing a software application or a software framework right?', 'start': 234.714, 'duration': 12.285}, {'end': 250.101, 'text': "So I hope you've understood what exactly design patterns are.", 'start': 247.399, 'duration': 2.702}], 'summary': 'Design patterns are software templates to solve recurring problems in application development.', 'duration': 32.715, 'max_score': 217.386, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ217386.jpg'}], 'start': 87.479, 'title': 'Team division, development process, and design patterns', 'summary': 'Discusses team division into groups of 10 for separate projects among 30 developers, different development processes for building applications, the need for design patterns to ensure uniformity, and defines design patterns as software templates to solve recurring problems.', 'chapters': [{'end': 126.862, 'start': 87.479, 'title': 'Team division and development process', 'summary': 'Discusses the division of a team of 30 developers into groups of 10 for separate projects and the consideration of different development processes for building applications.', 'duration': 39.383, 'highlights': ['The process of dividing a team of 30 developers into groups of 10 for separate projects is discussed, illustrating a scenario for team management.', 'The consideration of different development processes for building applications is highlighted, emphasizing the significance of the approach taken by the development team.']}, {'end': 268.157, 'start': 127.143, 'title': 'Understanding design patterns', 'summary': 'Discusses the need for design patterns to ensure uniformity in the development process, and defines design patterns as software templates or descriptions to solve recurring problems in software applications or frameworks.', 'duration': 141.014, 'highlights': ['Design patterns ensure uniformity in the development process by having all teams use the same pattern to build similar applications. Using design patterns ensures that all teams follow the same process or pattern to build applications, promoting uniformity.', 'Design patterns are software templates or descriptions to solve problems occurring in multiple instances while designing software applications or frameworks. Design patterns are software templates or descriptions used to solve recurring problems in software applications or frameworks.', 'Process 1 may work without errors or latency, while process 2 and process 3 could lead to errors and may not be the right way to build an application. Process 1 may work without errors or latency, while process 2 and process 3 could lead to errors and may not be suitable for application development.']}], 'duration': 180.678, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ87479.jpg', 'highlights': ['Design patterns ensure uniformity in the development process by having all teams use the same pattern to build similar applications.', 'The process of dividing a team of 30 developers into groups of 10 for separate projects is discussed, illustrating a scenario for team management.', 'The consideration of different development processes for building applications is highlighted, emphasizing the significance of the approach taken by the development team.', 'Design patterns are software templates or descriptions to solve problems occurring in multiple instances while designing software applications or frameworks.']}, {'end': 588.187, 'segs': [{'end': 329.186, 'src': 'embed', 'start': 289.187, 'weight': 4, 'content': [{'end': 296.472, 'text': 'is an architectural style that structures an application as a collection of small autonomous Services model around us business domain.', 'start': 289.187, 'duration': 7.285}, {'end': 303.517, 'text': 'So basically you can have a business domain and maybe all the functionalities and the features are divided into various microservices.', 'start': 296.992, 'duration': 6.525}, {'end': 309.741, 'text': 'So in a microservice architecture each service is self-contained and implements a single business capability.', 'start': 303.897, 'duration': 5.844}, {'end': 313.463, 'text': "So, for example, let's say you have an e-commerce application now.", 'start': 310.382, 'duration': 3.081}, {'end': 317.364, 'text': 'e-commerce application basically has customers orders and products right?', 'start': 313.463, 'duration': 3.901}, {'end': 321.384, 'text': 'So basically, a customer basically gives an order for a particular product.', 'start': 317.664, 'duration': 3.72}, {'end': 329.186, 'text': 'Now what you can do is you can build this application based on microservice architecture by dividing the customers into a specific service,', 'start': 321.744, 'duration': 7.442}], 'summary': 'Microservice architecture divides an application into autonomous services, each implementing a single business capability.', 'duration': 39.999, 'max_score': 289.187, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ289187.jpg'}, {'end': 461.813, 'src': 'embed', 'start': 435.483, 'weight': 0, 'content': [{'end': 441.005, 'text': "I would say, microservices are resilient services, because you know, let's say, even if one service is completely down,", 'start': 435.483, 'duration': 5.522}, {'end': 443.106, 'text': 'the complete application will not go down.', 'start': 441.005, 'duration': 2.101}, {'end': 449.628, 'text': "So in the e-commerce application let's say if the product service is down, that doesn't mean that you know your application will stop working.", 'start': 443.386, 'duration': 6.242}, {'end': 455.53, 'text': 'only that particular service is not working and the team will be working on that particular service to get back the service right?', 'start': 449.628, 'duration': 5.902}, {'end': 461.813, 'text': "So the only point that you have to understand is that you know, even if a service goes down, the complete application doesn't go down.", 'start': 455.871, 'duration': 5.942}], 'summary': 'Microservices ensure resilience by preventing complete application downtime, even if one service is down.', 'duration': 26.33, 'max_score': 435.483, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ435483.jpg'}, {'end': 572.756, 'src': 'embed', 'start': 538.563, 'weight': 3, 'content': [{'end': 545.13, 'text': 'and obviously these microservices are continuously monitored whether the response is sent back or not, or maybe if the service is down or not.', 'start': 538.563, 'duration': 6.567}, {'end': 548.504, 'text': 'Coming to the next principle that is isolation from failures.', 'start': 545.723, 'duration': 2.781}, {'end': 554.627, 'text': "So when I say isolation from failures, what I mean by that is you know all the services, even if they're down on.", 'start': 548.824, 'duration': 5.803}, {'end': 561.45, 'text': "maybe if they have any specific errors, that particular service will solve its own error and it won't disturb the complete application.", 'start': 554.627, 'duration': 6.823}, {'end': 566.692, 'text': "So let's say in the e-commerce application that we considered let's say if the product service is facing few errors.", 'start': 561.69, 'duration': 5.002}, {'end': 572.756, 'text': 'then what will happen is only that particular service will be basically taken into account and the errors will be solved,', 'start': 566.992, 'duration': 5.764}], 'summary': 'Microservices are continuously monitored for response and service status, ensuring isolation from failures and self-solving errors.', 'duration': 34.193, 'max_score': 538.563, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ538563.jpg'}], 'start': 268.337, 'title': 'Microservices architecture principles', 'summary': 'Explains microservices as an architectural style, outlining principles of independent and autonomous services, scalability, and decentralization. it discusses real-time data processing, 24/7 availability, continuous delivery, api integration, and isolation from failures.', 'chapters': [{'end': 416.045, 'start': 268.337, 'title': 'Understanding microservices architecture', 'summary': 'Explains microservices as an architectural style structuring applications into small autonomous services, with an example of an e-commerce application divided into customer, order, and product services, and outlines the principles of independent and autonomous services, scalability, and decentralization.', 'duration': 147.708, 'highlights': ['Microservices architecture structures applications as a collection of small autonomous services around a business domain. Microservices are explained as an architectural style that structures an application as a collection of small autonomous services around a business domain.', 'Example of an e-commerce application divided into customer, order, and product services. An example is provided of an e-commerce application being divided into customer, order, and product services to illustrate the concept of microservices.', 'Principles of independent and autonomous services, scalability, and decentralization are outlined. The principles of independent and autonomous services, scalability, and decentralization are explained as key aspects of microservices architecture.']}, {'end': 480.978, 'start': 416.365, 'title': 'Decentralization and resilience in microservices', 'summary': 'Discusses the concepts of decentralization, resilience, and real-time load balancing in microservices, highlighting the benefits of resilience where even if one service is down, the complete application will not go down and the role of load balancer in managing client requests.', 'duration': 64.613, 'highlights': ['Microservices are resilient, ensuring that even if one service is down, the complete application will not go down, contributing to the reliability and availability of the system.', "Real-time load balancing plays a crucial role in managing client requests by defining how much CPU or GPU should be used for a particular service to retrieve data and how the client's requests should be passed, ensuring efficient resource utilization and optimal performance.", 'Decentralization in microservices divides control into individual services, reducing the dependency on a centralized architecture, leading to improved scalability and flexibility.']}, {'end': 588.187, 'start': 480.998, 'title': 'Microservices architecture principles', 'summary': 'Discusses the key principles of microservices architecture, including real-time data processing, 24/7 availability, continuous delivery through devops integration, seamless api integration and continuous monitoring, isolation from failures, and auto provisioning.', 'duration': 107.189, 'highlights': ['Real-time data processing allows clients to receive outputs within seconds. The architecture enables real-time data processing, providing outputs within seconds.', 'Availability principle ensures services are accessible 24/7. The principle of availability guarantees 24/7 accessibility of services.', 'Continuous delivery through DevOps integration enables continuous output delivery. Microservices, in collaboration with DevOps, facilitate continuous delivery of outputs.', 'Seamless API integration and continuous monitoring are achieved through specific API Gateways for microservices. Microservices utilize specific API Gateways for seamless integration and continuous monitoring, ensuring efficient handling of client requests.', 'Isolation from failures ensures that individual service errors do not disrupt the entire application. Microservices are designed to isolate failures, preventing disruptions to the entire application in case of errors.', 'Auto provisioning allows services to automatically generate information for client requests. Auto provisioning empowers services to autonomously generate information for client requests.']}], 'duration': 319.85, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ268337.jpg', 'highlights': ['Microservices architecture structures applications as a collection of small autonomous services around a business domain.', 'Principles of independent and autonomous services, scalability, and decentralization are outlined.', 'Microservices are resilient, ensuring that even if one service is down, the complete application will not go down, contributing to the reliability and availability of the system.', "Real-time load balancing plays a crucial role in managing client requests by defining how much CPU or GPU should be used for a particular service to retrieve data and how the client's requests should be passed, ensuring efficient resource utilization and optimal performance.", 'Real-time data processing allows clients to receive outputs within seconds.', 'Availability principle ensures services are accessible 24/7.', 'Continuous delivery through DevOps integration enables continuous output delivery.', 'Seamless API integration and continuous monitoring are achieved through specific API Gateways for microservices.', 'Isolation from failures ensures that individual service errors do not disrupt the entire application.', 'Auto provisioning allows services to automatically generate information for client requests.']}, {'end': 930.147, 'segs': [{'end': 611.606, 'src': 'embed', 'start': 588.687, 'weight': 0, 'content': [{'end': 596.033, 'text': 'So, guys, these were the basic principles behind microservices, that is, independent and autonomous Services, scalability, decentralization,', 'start': 588.687, 'duration': 7.346}, {'end': 602.338, 'text': 'resilient Services, real-time load, balancing, availability, continuous delivery through devops integration,', 'start': 596.033, 'duration': 6.305}, {'end': 608.023, 'text': 'seamless API integration and continuous monitoring, isolation from failures and Auto provisioning.', 'start': 602.338, 'duration': 5.685}, {'end': 611.606, 'text': "right?. So, guys, I hope you've understood the principles behind microservices.", 'start': 608.023, 'duration': 3.583}], 'summary': 'Microservices: independent, scalable, resilient, real-time load balancing, continuous delivery, seamless api integration, isolation from failures, auto provisioning.', 'duration': 22.919, 'max_score': 588.687, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ588687.jpg'}, {'end': 655.136, 'src': 'heatmap', 'start': 625.791, 'weight': 0.821, 'content': [{'end': 629.313, 'text': "So let's get started with the first design pattern that is aggregator.", 'start': 625.791, 'duration': 3.522}, {'end': 632.394, 'text': 'So when you hear the term aggregator, what comes on to your mind?', 'start': 629.593, 'duration': 2.801}, {'end': 639.823, 'text': 'In computing world, aggregator refers to a website or a program that collects related items of data and displays them right?', 'start': 632.774, 'duration': 7.049}, {'end': 641.585, 'text': 'So even in microservices,', 'start': 640.163, 'duration': 1.422}, {'end': 649.194, 'text': 'pattern aggregator is basically a web page and invokes various services to get the required information or achieve the required functionality.', 'start': 641.585, 'duration': 7.609}, {'end': 655.136, 'text': 'Apart from this, when you basically build a microservices architecture, maybe a microservices application,', 'start': 649.754, 'duration': 5.382}], 'summary': 'Aggregator design pattern in microservices uses web page to invoke services for data collection and functionality.', 'duration': 29.345, 'max_score': 625.791, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ625791.jpg'}, {'end': 844.246, 'src': 'heatmap', 'start': 796.701, 'weight': 2, 'content': [{'end': 801.188, 'text': 'Now microservices are built in such a way that you know, each service has its own functionality.', 'start': 796.701, 'duration': 4.487}, {'end': 808.583, 'text': 'But when an application is broken down into small autonomous Services, there could be a few problems that a developer might face.', 'start': 801.698, 'duration': 6.885}, {'end': 812.646, 'text': 'now the problems could be how can I request information from multiple microservices?', 'start': 808.583, 'duration': 4.063}, {'end': 817.949, 'text': 'How can different UIs require different data to respond for the same back-end database service?', 'start': 813.026, 'duration': 4.923}, {'end': 822.853, 'text': 'or how to transform data according to a consumer requirement from reusable microservices.', 'start': 817.949, 'duration': 4.904}, {'end': 825.574, 'text': 'or how to handle multiple protocol requests right?', 'start': 822.853, 'duration': 2.721}, {'end': 829.177, 'text': 'So, guys, these are basically few problems that all the developers face.', 'start': 825.855, 'duration': 3.322}, {'end': 836.501, 'text': 'Well, if you wish to solve these problems, then I would say the solution to these kind of problems could be the API Gateway design pattern.', 'start': 829.637, 'duration': 6.864}, {'end': 844.246, 'text': 'So the API Gateway design patterns addresses not only the concerns that I mentioned right now, but also it solves many other problems.', 'start': 836.802, 'duration': 7.444}], 'summary': 'Microservices face challenges in data access and transformation, which can be solved by api gateway design pattern.', 'duration': 47.545, 'max_score': 796.701, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ796701.jpg'}], 'start': 588.687, 'title': 'Microservices design patterns', 'summary': 'Discusses microservices principles, challenges, and focuses on the aggregator and api gateway design patterns, addressing various developer problems and providing unique transaction handling and api management solutions.', 'chapters': [{'end': 731.453, 'start': 588.687, 'title': 'Microservices design patterns: aggregator', 'summary': 'Discusses the principles behind microservices, the challenges faced in building microservices, and focuses on the aggregator design pattern, which is beneficial when combining data from multiple services and involves unique id-based transaction handling and data publication to rest endpoints.', 'duration': 142.766, 'highlights': ['The aggregator design pattern is beneficial when you need an output by combining data from multiple services, and it involves unique ID-based transaction handling and data publication to rest endpoints.', 'Aggregator design pattern invokes various services to get the required information or achieve the required functionality in a microservices architecture.', 'In the aggregator design pattern, each transaction will have a unique ID, based on which the request will be sent, and all the data will be collected from individual services and the required business logic would be finally applied.', 'With the help of the aggregator design pattern, data collected will be published to the rest endpoint and consumed by the respective services which require that data.', 'The principles behind microservices include independent and autonomous services, scalability, decentralization, resilient services, real-time load balancing, availability, continuous delivery through devops integration, seamless API integration, continuous monitoring, isolation from failures, and auto-provisioning.']}, {'end': 930.147, 'start': 732.033, 'title': 'Aggregator & api gateway patterns', 'summary': 'Explains the aggregator design pattern for combining information from multiple services and the api gateway design pattern for managing requests, addressing multiple problems faced by developers, and creating fine-grained apis for different types of clients.', 'duration': 198.114, 'highlights': ['The Aggregator pattern combines information from multiple services to fulfill client requests, allowing for scaling of individual services and abstracting business logic into composite microservices. The Aggregator pattern allows scaling of individual services and abstracting business logic into composite microservices, providing a solution for combining information from multiple services to fulfill client requests.', 'The API Gateway design pattern acts as an entry point for all microservices, creating fine-grained APIs for different types of clients, handling multiple protocol requests, and offloading authentication responsibility. The API Gateway design pattern acts as an entry point for all microservices, creating fine-grained APIs for different types of clients, handling multiple protocol requests, and offloading authentication responsibility, addressing multiple problems faced by developers.', 'API gateways can convert the protocol request from one type to another type and offload the authentication responsibility of a specific microservice, handling requests and using service discovery for communication between microservices. API gateways can convert the protocol request from one type to another type and offload the authentication responsibility of a specific microservice, handling requests and using service discovery for communication between microservices.']}], 'duration': 341.46, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ588687.jpg', 'highlights': ['The aggregator design pattern combines data from multiple services and involves unique ID-based transaction handling and data publication to rest endpoints.', 'The API Gateway design pattern acts as an entry point for all microservices, creating fine-grained APIs for different types of clients, handling multiple protocol requests, and offloading authentication responsibility.', 'The principles behind microservices include independent and autonomous services, scalability, decentralization, resilient services, real-time load balancing, availability, continuous delivery through devops integration, seamless API integration, continuous monitoring, isolation from failures, and auto-provisioning.']}, {'end': 1343.391, 'segs': [{'end': 954.402, 'src': 'embed', 'start': 930.607, 'weight': 3, 'content': [{'end': 937.651, 'text': 'So microservices can communicate with each other via stateless server, that is, either by HTTP request or message bus, right?', 'start': 930.607, 'duration': 7.044}, {'end': 943.795, 'text': "So, with the help of API Gateway pattern guys, a client's request is basically forwarded to the correct microservice.", 'start': 938.012, 'duration': 5.783}, {'end': 951.28, 'text': 'And even if there are different kinds of clients using different UIs or maybe different protocols and they want the data from the same back-end service,', 'start': 944.155, 'duration': 7.125}, {'end': 954.402, 'text': 'then API Gateway design pattern is your solution right?', 'start': 951.28, 'duration': 3.122}], 'summary': 'Microservices communicate via stateless server, api gateway forwards requests to correct microservice.', 'duration': 23.795, 'max_score': 930.607, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ930607.jpg'}, {'end': 1061.768, 'src': 'embed', 'start': 1026.021, 'weight': 0, 'content': [{'end': 1030.303, 'text': 'So all these services use synchronous HTTP request or response for messaging.', 'start': 1026.021, 'duration': 4.282}, {'end': 1038.189, 'text': 'Also, until the request passes through all the services and the respective responses are generated, the client does not get any output right?', 'start': 1030.823, 'duration': 7.366}, {'end': 1042.973, 'text': "So, guys, this is kind of a disadvantage in this particular design pattern, because you know, let's say,", 'start': 1038.409, 'duration': 4.564}, {'end': 1047.837, 'text': 'you know you have 20 services lined up and maybe the client request is a very big request right?', 'start': 1042.973, 'duration': 4.864}, {'end': 1055.483, 'text': 'So, until all the data is collected from all these particular services and then the response back is generated, the client does not see any output.', 'start': 1048.097, 'duration': 7.386}, {'end': 1061.768, 'text': "Right? So it's always recommended not to make any long chain as the client has to wait until the chain is completed.", 'start': 1055.683, 'duration': 6.085}], 'summary': 'Synchronous http requests in a long chain can delay client output.', 'duration': 35.747, 'max_score': 1026.021, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ1026021.jpg'}], 'start': 930.607, 'title': 'Microservices design patterns', 'summary': 'Covers api gateway, chain of responsibility, and asynchronous messaging design patterns for directing client requests, producing single outputs, and managing non-sequential communication. it also discusses database design patterns emphasizing the use of database per service or shared database per service for data management in microservices architecture.', 'chapters': [{'end': 1061.768, 'start': 930.607, 'title': 'Api gateway & chain of responsibility design patterns', 'summary': 'Discusses the api gateway design pattern for directing client requests to microservices and the chain of responsibility design pattern for producing a single output from multiple chained outputs using synchronous http request or response for messaging.', 'duration': 131.161, 'highlights': ['API Gateway pattern forwards client requests to correct microservices, providing a solution for different clients using different UIs or protocols. API Gateway pattern forwards client requests to correct microservices, providing a solution for different clients using different UIs or protocols.', 'Chain of responsibility design pattern produces a single output from multiple chained outputs, involving passing client requests through a series of services before generating a response. Chain of responsibility design pattern involves passing client requests through a series of services before generating a response, using synchronous HTTP request or response for messaging.', 'Long chains of services in chain of responsibility design pattern can cause delays for the client as they have to wait until the entire chain is completed, posing a disadvantage. Long chains of services in chain of responsibility design pattern can cause delays for the client as they have to wait until the entire chain is completed, posing a disadvantage.']}, {'end': 1190.087, 'start': 1062.028, 'title': 'Chain of responsibility & asynchronous messaging', 'summary': 'Explains the chain of responsibility design pattern, emphasizing the variation in request and response formats between services, and introduces the asynchronous messaging design pattern, highlighting the advantages of non-sequential communication and the use of queues to manage simultaneous requests.', 'duration': 128.059, 'highlights': ['The chain of responsibility design pattern emphasizes the variation in request and response formats between services, providing a comprehensive understanding of the communication flow. This pattern highlights the diverse formats of requests and responses between services, emphasizing the need to comprehend the distinct nature of interactions.', 'The asynchronous messaging design pattern introduces non-sequential communication, utilizing queues to manage simultaneous requests and avoid prolonged client wait times. This pattern focuses on the advantages of non-sequential communication and the use of queues to handle simultaneous requests efficiently, preventing extended client wait times.']}, {'end': 1343.391, 'start': 1190.448, 'title': 'Database design patterns', 'summary': 'Discusses the importance of data management in microservices architecture, highlighting the use of database per service or shared database per service to solve issues like data duplication and inconsistency, with a recommendation to use database per service for solving specific problems and shared databases for service to align multiple databases for each microservice.', 'duration': 152.943, 'highlights': ['The importance of ensuring each microservice has sufficient data to process client requests when breaking down a monolithic application into smaller services.', 'The use of database per service or shared database per service to solve problems such as data duplication, inconsistency, and different storage requirements among services.', 'The recommendation to use database per service when dealing with specific problems like duplication of data and inconsistency, with each microservice having its own specific database accessed only by its API.', 'The suggestion to use shared databases for service to align more than one database for each microservice to address the issue of denormalization in the context of monolithic applications broken down into microservices.']}], 'duration': 412.784, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ930607.jpg', 'highlights': ['API Gateway pattern forwards client requests to correct microservices, providing a solution for different clients using different UIs or protocols.', 'Chain of responsibility design pattern produces a single output from multiple chained outputs, involving passing client requests through a series of services before generating a response.', 'The asynchronous messaging design pattern introduces non-sequential communication, utilizing queues to manage simultaneous requests and avoid prolonged client wait times.', 'The recommendation to use database per service when dealing with specific problems like duplication of data and inconsistency, with each microservice having its own specific database accessed only by its API.']}, {'end': 1894.021, 'segs': [{'end': 1378.654, 'src': 'heatmap', 'start': 1343.391, 'weight': 0, 'content': [{'end': 1346.432, 'text': 'else scaling these services will be a big problem, right?', 'start': 1343.391, 'duration': 3.041}, {'end': 1349.154, 'text': 'So, guys, that was about the database design patterns.', 'start': 1346.633, 'duration': 2.521}, {'end': 1351.716, 'text': "Let's move forward with the next design pattern.", 'start': 1349.634, 'duration': 2.082}, {'end': 1353.757, 'text': 'That is the event sourcing design pattern.', 'start': 1351.756, 'duration': 2.001}, {'end': 1359.661, 'text': 'So the event sourcing design pattern basically creates events regarding the changes in the application state.', 'start': 1354.077, 'duration': 5.584}, {'end': 1367.046, 'text': 'So these events are stored as a sequence of events to help the developers track which change was made, when and by whom right?', 'start': 1360.041, 'duration': 7.005}, {'end': 1368.367, 'text': 'So with the help of this,', 'start': 1367.326, 'duration': 1.041}, {'end': 1378.654, 'text': 'you can always adjust the application state to cope up with the past changes and also you can query these events for any data change and simultaneously publish this events from the event store.', 'start': 1368.367, 'duration': 10.287}], 'summary': 'Event sourcing design pattern tracks application state changes through stored events, enabling adjustments and data querying.', 'duration': 35.263, 'max_score': 1343.391, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ1343391.jpg'}, {'end': 1436.962, 'src': 'embed', 'start': 1411.29, 'weight': 4, 'content': [{'end': 1417.553, 'text': "So what do you understand by branch pattern? Obviously as the name suggests it's all about branches right over a specific service.", 'start': 1411.29, 'duration': 6.263}, {'end': 1419.573, 'text': 'You can have different branches right?', 'start': 1417.853, 'duration': 1.72}, {'end': 1429.137, 'text': 'So the branch microservice design pattern is basically a design pattern in which you can simultaneously process the request and response from two or more independent microservices.', 'start': 1419.894, 'duration': 9.243}, {'end': 1436.962, 'text': 'So, unlike the chain design pattern that I discussed before, the request is not passed in a sequence, but the request is passed to,', 'start': 1429.617, 'duration': 7.345}], 'summary': 'Branch pattern processes requests from multiple microservices concurrently.', 'duration': 25.672, 'max_score': 1411.29, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ1411290.jpg'}, {'end': 1477.299, 'src': 'embed', 'start': 1449.549, 'weight': 3, 'content': [{'end': 1454.913, 'text': 'So, for example, if you consider an e-commerce application, then you may need to retrieve the data from multiple sources.', 'start': 1449.549, 'duration': 5.364}, {'end': 1459.234, 'text': 'and this data could be a collaborated output from various Services right?', 'start': 1455.553, 'duration': 3.681}, {'end': 1463.595, 'text': 'So you can use the branch pattern to retrieve the data from multiple sources right?', 'start': 1459.534, 'duration': 4.061}, {'end': 1466.136, 'text': 'So the branch pattern is really simple to understand guys.', 'start': 1463.615, 'duration': 2.521}, {'end': 1472.717, 'text': "It's basically where you want to simultaneously process the request and the response from multiple microservices, right?", 'start': 1466.496, 'duration': 6.221}, {'end': 1477.299, 'text': 'So these could be either in a single chain or maybe it could be in multiple chains also.', 'start': 1472.737, 'duration': 4.562}], 'summary': 'Using the branch pattern, retrieve data from multiple sources for e-commerce applications.', 'duration': 27.75, 'max_score': 1449.549, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ1449549.jpg'}, {'end': 1510.59, 'src': 'heatmap', 'start': 1485.287, 'weight': 1, 'content': [{'end': 1490.752, 'text': "Now, let's move forward with the next pattern that is command query responsibilities aggregator design pattern.", 'start': 1485.287, 'duration': 5.465}, {'end': 1496.758, 'text': 'So command query responsibilities, aggregator design pattern, or more commonly known as CQ RS,', 'start': 1491.113, 'duration': 5.645}, {'end': 1500.102, 'text': 'is basically used when you want to query for a specific data right?', 'start': 1496.758, 'duration': 3.344}, {'end': 1507.528, 'text': 'Now what happens is that you know when you have microservices design in the form of database for service or shared database for service,', 'start': 1500.502, 'duration': 7.026}, {'end': 1510.59, 'text': 'what happens is that you know you have limited access to database right?', 'start': 1507.528, 'duration': 3.062}], 'summary': 'Cqrs aggregator pattern used for limited database access in microservices.', 'duration': 25.303, 'max_score': 1485.287, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ1485287.jpg'}], 'start': 1343.391, 'title': 'Microservice design patterns', 'summary': 'Delves into various design patterns for microservices, including database design patterns, event sourcing, branch pattern, and command query responsibilities aggregator. it also covers the circuit breaker pattern for handling service failures and the decomposition pattern for breaking down applications into small services based on business capabilities or subdomains.', 'chapters': [{'end': 1569.384, 'start': 1343.391, 'title': 'Microservice design patterns', 'summary': 'Discusses database design patterns, event sourcing design pattern, branch pattern, and command query responsibilities aggregator design pattern for microservices, emphasizing the importance of event tracking, simultaneous processing, and database access optimization.', 'duration': 225.993, 'highlights': ['The event sourcing design pattern creates events regarding the changes in the application state, allowing developers to track changes and adjust the application state based on past changes. The event sourcing design pattern enables the tracking of changes in the application state through a sequence of events, facilitating adjustments to the application state and the ability to query events for data change.', 'The branch microservice design pattern enables simultaneous processing of requests and responses from independent microservices, providing flexibility to produce responses from multiple chains or a single chain. The branch microservice design pattern allows for simultaneous processing of requests and responses from independent microservices, extending the aggregated design pattern and offering flexibility in producing responses from multiple or single chains.', 'The CQ RS pattern divides the application into command and query parts, where the command part handles requests related to create, update, and delete, while the query part takes care of materialized views, ensuring good access to databases and client request satisfaction. The CQ RS pattern divides the application into command and query parts, ensuring that requests related to create, update, and delete are handled by the command part, while the query part takes care of materialized views, optimizing database access and satisfying client requests.']}, {'end': 1894.021, 'start': 1569.924, 'title': 'Microservices design patterns', 'summary': 'Discusses the circuit breaker pattern for handling service failures, emphasizing how it prevents exhaustion of network resources and ensures a good user experience. it then explains the decomposition pattern for breaking down applications into small services based on business capabilities or subdomains, highlighting the challenges of implementing these patterns for big monolithic applications.', 'duration': 324.097, 'highlights': ['The circuit breaker pattern is used to stop the process of request and response if a service is not working, preventing exhaustion of network resources and ensuring a good user experience. Prevents exhaustion of network resources and ensures a good user experience', 'Decomposing big monolithic applications is challenging and requires following the wine pattern or the strangler pattern. Challenges of implementing decomposition patterns for big monolithic applications', 'Microservices can be decomposed based on business capabilities or subdomains, with the need to logically break down applications into small autonomous units. Explains the need to logically break down applications into small autonomous units']}], 'duration': 550.63, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/xuH81XGWeGQ/pics/xuH81XGWeGQ1343391.jpg', 'highlights': ['The event sourcing design pattern enables tracking of changes in the application state through a sequence of events, facilitating adjustments to the application state and the ability to query events for data change.', 'The branch microservice design pattern allows for simultaneous processing of requests and responses from independent microservices, extending the aggregated design pattern and offering flexibility in producing responses from multiple or single chains.', 'The CQ RS pattern divides the application into command and query parts, ensuring that requests related to create, update, and delete are handled by the command part, while the query part takes care of materialized views, optimizing database access and satisfying client requests.', 'The circuit breaker pattern is used to stop the process of request and response if a service is not working, preventing exhaustion of network resources and ensuring a good user experience.', 'Challenges of implementing decomposition patterns for big monolithic applications', 'Explains the need to logically break down applications into small autonomous units']}], 'highlights': ['The session covers various design patterns to use while setting up an application using microservices, addressing the challenges faced by skilled professionals.', 'The session introduces the need for design patterns and principles behind microservices, providing a structured agenda for the topics to be covered.', 'Design patterns ensure uniformity in the development process by having all teams use the same pattern to build similar applications.', 'The process of dividing a team of 30 developers into groups of 10 for separate projects is discussed, illustrating a scenario for team management.', 'The consideration of different development processes for building applications is highlighted, emphasizing the significance of the approach taken by the development team.', 'Microservices architecture structures applications as a collection of small autonomous services around a business domain.', 'Principles of independent and autonomous services, scalability, and decentralization are outlined.', 'Microservices are resilient, ensuring that even if one service is down, the complete application will not go down, contributing to the reliability and availability of the system.', "Real-time load balancing plays a crucial role in managing client requests by defining how much CPU or GPU should be used for a particular service to retrieve data and how the client's requests should be passed, ensuring efficient resource utilization and optimal performance.", 'Real-time data processing allows clients to receive outputs within seconds.', 'Availability principle ensures services are accessible 24/7.', 'Continuous delivery through DevOps integration enables continuous output delivery.', 'Seamless API integration and continuous monitoring are achieved through specific API Gateways for microservices.', 'Isolation from failures ensures that individual service errors do not disrupt the entire application.', 'Auto provisioning allows services to automatically generate information for client requests.', 'The aggregator design pattern combines data from multiple services and involves unique ID-based transaction handling and data publication to rest endpoints.', 'The API Gateway design pattern acts as an entry point for all microservices, creating fine-grained APIs for different types of clients, handling multiple protocol requests, and offloading authentication responsibility.', 'API Gateway pattern forwards client requests to correct microservices, providing a solution for different clients using different UIs or protocols.', 'Chain of responsibility design pattern produces a single output from multiple chained outputs, involving passing client requests through a series of services before generating a response.', 'The asynchronous messaging design pattern introduces non-sequential communication, utilizing queues to manage simultaneous requests and avoid prolonged client wait times.', 'The recommendation to use database per service when dealing with specific problems like duplication of data and inconsistency, with each microservice having its own specific database accessed only by its API.', 'The event sourcing design pattern enables tracking of changes in the application state through a sequence of events, facilitating adjustments to the application state and the ability to query events for data change.', 'The branch microservice design pattern allows for simultaneous processing of requests and responses from independent microservices, extending the aggregated design pattern and offering flexibility in producing responses from multiple or single chains.', 'The CQ RS pattern divides the application into command and query parts, ensuring that requests related to create, update, and delete are handled by the command part, while the query part takes care of materialized views, optimizing database access and satisfying client requests.', 'The circuit breaker pattern is used to stop the process of request and response if a service is not working, preventing exhaustion of network resources and ensuring a good user experience.', 'Challenges of implementing decomposition patterns for big monolithic applications', 'Explains the need to logically break down applications into small autonomous units']}