Skip to main content

Building Modern Distributed Systems with Java

3h 53m 32s
English
Paid

Course description

Significant percentage of large scale enterprises that I have been working with, admitted experiencing performance issues with their business critical applications. Most of production systems have been built on top of legacy, monolith technologies. Recent popularity of micro-services will not fulfill its promise of decoupled, scalable and fault-tolerant systems, unless "done right".

Read more about the course

While entering the world of micro-services, engineers start building distributed applications, where robust remote procedure calls and cluster coordination are a must.

In this course you will learn about common challenges that appear while designing and implementing large scale distributed systems, and how Big-Tech companies solve those problems.

Technologies, algorithms and design patterns covered in this course:

  • Service Registry and Discovery, Service Mesh

  • Apache Cassandra

  • ETCD (coordinator managing Kubernetes clusters)

  • Apache Kafka

  • Idempotent service design, retry logic

  • Sharding and Consistent Hashing

  • Client-side Load Balancing, Distributed Tracing, Canary Deployment, Sidecar Pattern, Circuit Breaker

Course will teach you the principles of various distributed systems design, for example master-less vs. with leaders, poll-based vs. push-based, immediate vs. eventual consistency. After completing the course, learning new distributed database technology would be easier, because you will know the common re-used techniques, including their pros and cons.

My intention is to keep course content very practical, with lots of code examples and applied best practices. For example, I will cover Service Registry and Discovery to the detail, that you will know how to implement your own framework on top of ETCD. Throughout the course, we are going to build distributed URL shorten service.

The course may be a good recap for people preparing for systems design interview.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 30 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Evolution of computer system’s architecture

All Course Lessons (30)

#Lesson TitleDurationAccess
1
Evolution of computer system’s architecture Demo
04:04
2
Challenges of distributed computing
04:10
3
Use-case of course application
04:25
4
Practice 1
04:52
5
The need of communication
06:37
6
Message transport and format
02:20
7
Synchronous and asynchronous communication patterns
03:02
8
Traditional load balancers
02:24
9
Service Registry and Discovery
02:26
10
Service meshes
08:37
11
Idempotent service design
07:34
12
Practice 2
08:42
13
Traditional RDBMS systems vs. NoSQL
06:09
14
Data sharding and consistent hashing
06:25
15
CAP theorem
06:46
16
Short introduction to Apache Cassandra
20:20
17
Practice 3
11:46
18
The need of cluster-wide coordination
07:37
19
RAFT consensus algorithm
12:36
20
Short introduction to Etcd
12:35
21
Implementation of distributed mutex
07:42
22
Leader election design pattern
02:42
23
Deployment requirements for strongly consistent distributed systems
05:18
24
ACID properties in distributed system
04:47
25
Practice 4
17:07
26
Asynchronous communication pattern and message-oriented middleware
05:34
27
Short introduction to Apache Kafka
05:27
28
Apache Kafka as a distributed system
29:40
29
Event-driven architecture
02:29
30
Practice 5
09:19

Unlock unlimited learning

Get instant access to all 29 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Java Multithreading, Concurrency & Performance Optimization

Java Multithreading, Concurrency & Performance Optimization

Sources: udemy
If you had your own jet plane, would you drive it to the grocery store, or fly it on a tour around the world? Today every computer and phone comes with immense computing power a...
5 hours 16 minutes 23 seconds
Java Puzzles to Eliminate Code Fear

Java Puzzles to Eliminate Code Fear

Sources: udemy
The motivation behind this course came from an article titled "Why Can't Programmers Program?" by Jeff Atwood. It talks about how poorly many candidates perform
7 hours 33 minutes 44 seconds
Ultimate Java Part 1: Fundamentals

Ultimate Java Part 1: Fundamentals

Sources: codewithmosh (Mosh Hamedani)
Java is the most widely used and in-demand programming language. It's used in 90% of fortune 500 company websites, most big banks and financial companies, almost all Android app...
3 hours 21 minutes 58 seconds
Experience Design Patterns In Java

Experience Design Patterns In Java

Sources: udemy
Boost your software designs by taking this content-rich and hands on fully featured training course. This course will give you insight in the more than 20+ desi
7 hours 19 minutes 58 seconds
RESTful Web Services, Java, Spring Boot, Spring MVC and JPA

RESTful Web Services, Java, Spring Boot, Spring MVC and JPA

Sources: udemy
This video course also covers the H2 in-memory database and teaches how to build RESTful Web Service that stores data in a database without a need to install My
25 hours 8 minutes 11 seconds