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 Generics

Java Generics

Sources: Amigoscode (Nelson Djalo)
As a Java software engineer is important to know how to write generic algorithms to write clean and re usable api's. Java Generics has been introduce remove unn
1 hour 8 minutes 39 seconds
Learn Java Unit Testing with Junit & Mockito in 30 Steps

Learn Java Unit Testing with Junit & Mockito in 30 Steps

Sources: udemy
Learn Mockito and JUnit - the most popular Java unit testing and mocking frameworks - with 25 Examples. Writing Great Unit Tests distinguishes Good Programmers
4 hours 44 minutes 35 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
Learn Blockchain Technology & Cryptocurrency in Java

Learn Blockchain Technology & Cryptocurrency in Java

Sources: udemy
Blockchain is a revolutionary technology that allows for decentralized and distributed storage of information. Maybe the hottest topic at the moment in the fiel
5 hours 44 minutes 32 seconds
The Ultimate Data Structures & Algorithms: Part 2

The Ultimate Data Structures & Algorithms: Part 2

Sources: codewithmosh (Mosh Hamedani)
Data structures and algorithms are patterns for solving problems. Developers who know more about data structures and algorithms are better at solving problems. That’s why compan...
5 hours 56 minutes 46 seconds