Menu

Job Guarantee

Workshops

Projects

Blogs

Careers

Hire from us


For Business / Universities

Corporate Training

Academic Up-skilling


All Courses

Choose a category

Loading...

All Courses / undefined

All Courses / undefined / undefined

logo

Loading...

FOR BUSINESSES

Corporate Upskilling

FOR Universities

Academic Training

More

Design Patterns for Building Scalable Applications

A comprehensive industry level course on the Design Patterns for Building Scalable Applications.

12 weeks long course | 100% Online

Learn from leading experts in the industry

Project based learning with 2 industry level projects that learners can showcase on LinkedIn.

Learn Key Tools & Technologies Eclipse IDE, Mulesoft

Book a Free Demo Session

Enter your phone number and book a FREE Demo session on your favourite courses now!
Please enter a valid email
Please enter a valid number

Syllabus

This course is full of best-in-class content by leading faculty and industry experts in the form of videos and projects

Course Overview

  • This course deals with the distributive nature of systems which is necessary to make the system scale
  • Distributed systems are mostly an outcome of the growing traffic for websites and efficiency required in throughput and response time
  • The course covers all the aspects and lays out design patterns which can be beneficial in different sort of crisis situations pertaining to distributing systems

Course Syllabus

On a daily basis we talk to companies in the likes of Tata Elxsi and Mahindra to fine tune our curriculum.

Week 01 - Introduction to Scalable systems

In this week, we will understand what is scalability by taking references from the real world businesses and we will also look into the importance of consistency and availability in achieving scalability for such businesses

  • Scalability in a distributed world
  • Scalability
  • Scalability in real world
  • Consistency
  • Availability

Week 02 - Distributed systems

In this week, we will learn about, distributed systems and its working, we will look into CAP theorem and how these 3 attributes, “consistency, availability and partition tolerance” helps in building a scalable system.

  • Distributed Systems
  • Reasons for building scalable systems
  • Consistency in distributed systems
  • Laws of scalability
  • Laws of scalability review
  • CAP theorem
  • Understanding CAP theorem with an example
  • Understanding the terms of the CAP theorem
  • Understanding CP with MongoDB
  • CAP theorem review

Week 03 - Building blocks of scalable architecture

This week, we will learn about  load balancers and how they  help to diversify “input requests traffic” and balance these requests among the backend servers. We will also learn about CDN, reverse proxies, message queues and how they help in decoupling an application for better performance.

  • Load balancers 
  • Messaging queues
  • Caches
  • Reverse proxies
  • CDN
  • NoSQL databases
  • Embedded databases
  • Cloud
  • Language features
  • Frameworks
  • Design rules derived from design principles

Week 04 - Introduction to Design Patterns

Design patterns help in solving distributed world challenges. This week, we will look into the software design patterns and their major categories.

  • What are design patterns?
  • Uses of design patterns
  • State of art design patterns
  • The Google Pregel Graph processing project and the Hama project
  • Design patterns in detail
  • Load balancer
  • Scatter and gather
  • Result cache
  • Shared space
  • Pipe and filter
  • Map reduce
  • Bulk synchronous parallel
  • Execution orchestrator
  • Project

Week 05 - Design Patterns session 2

This week, we will focus on scaling out in a shared-nothing architecture and how it is a highly decoupled architecture. We will also look into sharding, master-slave architecture and how it can be used in case of a parallel distributed system and connection pool uses.

  • Shared-nothing architecture
  • Horizontal vs vertical scaling 
  • Example for shared-nothing architecture
  • Database sharding
  • Master slave database
  • Connection pooling
  • Near real-time synchronization of data

Week 06 - Architecture Design patterns for building scalable systems

In this week, we will be introduced to microservices patterns and will get an understanding about

  • Design and architectural patterns
  • Publisher/Subscriber pattern
  • Advantages of Pub/Sub pattern
  • Bottlenecks of Pub/Sub pattern
  • Scheduler-Agent-Supervisor
  • Priority Queue pattern
  • Cache-Aside pattern
  • Queue-Based Load Levelling pattern
  • Throttling pattern

Week 07 - Microservices architecture and data management design patterns for scalable microservices

This week, we will deep dive into microservices architecture methods and how it is a better alternative monolithic architecture. Further we will look into, data management patterns like database per service, CQRS and event sourcing and its uses, benefits and examples.

  • Microservices architecture
  • Best practices for Microservices
  • Data management design patterns for scalable microservices
  • Database per service pattern
  • Event Sourcing pattern
  • Command Query Responsibility
  • Segregation (CQRS) pattern

Week 08 - Design Patterns for scalable microservices architecture

In this week, as the title suggests we will look into various patterns in microservices architecture and learn the uniqueness, uses and benefits of each pattern. By the end of this week, you will have a clear idea on which patterns to use according to the business requirement and set up.

  • Saga pattern
  • Backend for frontend
  • API gateway
  • Strangler pattern
  • Circuit breaker pattern
  • Externalized configuration
  • Consumer driven contract testing

Week 09 - Design patterns for scalable microservices systems

In this week, we will revisit the patterns that we leant previously and learn a few more patterns like decomposition and integration patterns and its types. We will be able to get a new perspective on the microservices patterns used with respect to the business capabilities.

  • Revisiting design patterns for microservices
  • Decomposition patterns
  • Integration Patterns

Week 10 - Design Patterns Observability and Cross-cutting concerns

In this week, we will look into more patterns like observability and cross-cutting concern patterns and its types and uses to scale a system. We will design an alternative or similar relational database using the patterns and understand the different types of distributed tracing patterns.

  • Observability patterns
  • Log aggregation pattern
  • Distributed tracing pattern
  • Health check pattern
  • Cross-cutting concern patterns
  • External configuration pattern
  • Service Discovery pattern
  • Blue green deployment pattern

Week 11 - Case Studies of design/ architecture patterns

We will look into the usages of design patterns in leading organizations like ThoughtWorks and understand their working principle. We will also learn about the usage of design patterns in music corp events and we will learn how to build service integration.

  • State of the art-design patterns usage in leading organizations
  • Scaling microservices event stream at Thoughtworks
  • Thoughtworks: Service orchestration
  • Thoughtworks: Service choreography with event stream
  • Understanding the music corp event
  • Customer creation: Publishing the event
  • Email service: Subscribing the event
  • Scaling the microservices with all the challenges and bottlenecks in mind
  • Building services integration
  • Uber’s distributed tracing infrastructure
  • Uber: quest for the perfect tracing tool
  • Using the existing methodologies to advantage
  • TChannel generated traces
  • Scalability best practices from ebay

Week 12 - Case study of scaling a relational database

In the last section of the course, we will be looking into a case study, we will be able to think in real time and hence provide real time solutions using the patterns and systems that we learnt in this course.

  • Case study
  • Popular patterns to scale a system
  • Revision of some commonly used patterns

Our courses have been designed by industry experts to help students achieve their dream careers

Industry Projects

Our projects are designed by experts in the industry to reflect industry standards. By working through our projects, Learners will gain a practical understanding of what they will take on at a larger-scale in the industry. In total, there are 2 Projects that are available in this program.

Event Sourcing in Design Patterns

Students are required to create a project that shows a combination of command and query responsibility segregation (CQRS) and event sourcing design patterns. The project should display all events, including commands with new events added into a database/event store, and queries that can help get data from the database/event store. All events are to be displayed in chronological order. The database can be used to leverage the pattern or, students can also store the data structures temporarily to carry out the project functioning. Example: The solved project can be a set of API endpoints that demonstrate the creation of a bank account with events like crediting and debiting taking place. At any point, users should be able to track event activity that takes place in the user logs. At the end of this project, students should deliver a working solution of the mentioned requirements, and an API that can store session data and deliver according to the pattern’s functioning.

Aggregator Pattern

Students are required to develop a website/portal, where users can create a list of their favorite songs and display them on the homepage. For each song, the portal should display the name of the song, its ID, lyricist, and singer. Students will have to create 3 individual classes for songs, lyricists, and singers, and use the aggregator pattern to display the HAS-A relationship between song, lyricist, and singer.

Our courses have been designed by industry experts to help students achieve their dream careers

Ratings & Reviews by Learners

Skill-Lync has received honest feedback from our learners around the globe.

Google Rating
4.6

Instructors profiles

Our courses are designed by leading academicians and experienced industry professionals.

image

1 industry expert

Our instructors are industry experts along with a passion to teach.

image

11 years in the experience range

Instructors with 11 years extensive industry experience.

image

Areas of expertise

  • Software Engineer

Similar Courses

Got more questions?

Talk to our Team Directly

Please fill in your number & an expert from our team will call you shortly.

Please enter a valid email
Please enter a valid number
Try our top engineering courses, projects & workshops today!Book a FREE Demo