Skip to main content
CF

Building Modern Distributed Systems with Java

3h 53m 32s
English
Paid

Building Modern Distributed Systems with Java is a 30-lesson 3 hours 53 minutes self-paced course by Udemy. Significant percentage of large scale enterprises that I have been working with, admitted experiencing performance issues with their business critical applications.

Course facts

Lessons
30
Duration
3 hours 53 minutes
Level
All levels
Language
English
Updated
Instructor
Udemy
Price
Premium

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".

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.

Who teaches Building Modern Distributed Systems with Java? Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

What lessons are included in Building Modern Distributed Systems with Java?

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

What courses are similar to Building Modern Distributed Systems with Java?

Frequently asked questions

What are the prerequisites for enrolling in this course?
Prospective students should have a solid understanding of Java programming and familiarity with basic concepts of software architecture. Prior experience with distributed systems, though not mandatory, will be beneficial given the course's focus on modern distributed architecture and microservices.
What kinds of projects or systems will students build in this course?
Students will work on several practical exercises throughout the course, such as implementing a distributed mutex and designing a leader election pattern. These exercises are designed to reinforce concepts like service registry, asynchronous communication, and event-driven architecture.
Who is the target audience for this course?
This course is tailored for software developers and architects who are looking to transition from monolithic to microservices architecture. It is also suitable for those wanting to understand the complexities of distributed systems and improve the performance of business-critical applications.
What specific tools or platforms are covered in this course?
The course includes short introductions to Apache Cassandra, Etcd, and Apache Kafka, focusing on their roles in distributed systems. Students will learn about their use in scenarios like cluster-wide coordination, data sharding, and message-oriented middleware.
How does the depth and scope of this course compare to other courses on distributed systems?
This course emphasizes hands-on practice with distributed systems concepts such as service meshes, RAFT consensus algorithm, and idempotent service design. It aims to provide practical insights into building scalable and fault-tolerant systems, which may not be covered in less focused courses on distributed systems.
What aspects of distributed systems are not covered in this course?
While the course covers a wide range of topics, it does not delve into the specifics of cloud-based deployment models or vendor-specific cloud services. The focus remains on core principles and open-source tools relevant to distributed systems.
What is the expected time commitment for completing the course?
The course consists of 30 lessons. While the total runtime is not specified, students should budget time for both lecture viewing and hands-on practice exercises. Depending on prior experience and pace, it could take several weeks to complete.