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

Machine Learning with Javascript

Machine Learning with Javascript

Sources: udemy, Stephen Grider
If you're here, you already know the truth: Machine Learning is the future of everything. In the coming years, there won't be a single industry in the world untouched by Machine...
17 hours 42 minutes 20 seconds
Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka

Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka

Sources: udemy
Hi there! My name is Ali Gelenler. I'm here to help you learn microservices architecture while applying Clean and Hexagonal Architectures and using Domain Drive
18 hours 2 minutes 34 seconds
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 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
Java Data Structures & Algorithms + LEETCODE Exercises

Java Data Structures & Algorithms + LEETCODE Exercises

Sources: udemy
Welcome to the "Data Structures and Algorithms in Java" course! This course makes learning programming exciting and simplifies complex concepts for...
9 hours 47 minutes 55 seconds