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

Watch Online Building Modern Distributed Systems with Java

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

Oracle Java Certification - Pass the Associate 1Z0-808 Exam.

Oracle Java Certification - Pass the Associate 1Z0-808 Exam.

Sources: udemy
So you've learnt some Java, but are struggling to get an interview, let alone a job. Or you are stuck in a low paying programming job, and want to move up to a
20 hours 8 minutes 36 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
Java Test Automation Engineer - from Zero to Hero

Java Test Automation Engineer - from Zero to Hero

Sources: udemy
Are you ready to embark on an exciting journey to become a Test Automation Hero in Java? Whether you're new to programming or have some experience, this course
18 hours 40 minutes 6 seconds
Mastering Java 17

Mastering Java 17

Sources: javaspecialists.eu
In this course, we will take an in-depth look at the key innovations in Java 12, 13, 14, 15, 16, and 17. It is ideal for programmers working with Java 11...
8 hours 20 minutes 27 seconds
Spring Professional Certification Exam Tutorial - Module 08

Spring Professional Certification Exam Tutorial - Module 08

Sources: udemy
Spring Professional Exam Tutorial explains and answers all questions from Spring Professional Certification Study Guide. Each answer to exam topic is explained
1 hour 54 minutes 51 seconds