Skip to content
UdemyIT & SoftwarePaid courseIntermediate levelCertificate

Building Modern Distributed Systems with Java (Udemy.com)

Learn how to design large-scale distributed systems with NoSQL databases, messaging queues and cluster coordination

Created by: Lukasz Antoniak

Last updated February 2022

icon
What you will learn

  • Design and implement globally-distributed, scalable and fault-tolerant applications
  • Understanding of common algorithms and techniques used in majority of NoSQL databases and streaming platforms
  • In-depth knowledge of Apache Cassandra, Apache Kafka and ETCD
  • Build distributed URL-shorten service

How it compares

Against the other 1,182 rated Udemy courses in IT & Software on CourseDuck:

  • Rating4.3 out of 5higher than 20% of them
  • Reviews187#842 of 1,183 by number of reviews
  • Length3.9 hoursshorter than 62% of them
  • Last updatedFebruary 2022earlier than 78% of them

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

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Lukasz Antoniak

Daily architect with purpose of designing and implementing robust back-end systems. After falling in love with Apache Cassandra few years ago, my focus shifted towards Big Data technologies, Micro Service architecture, NoSQL databases and distributed message brokers. Contributing as committer to various open-source projects including Hibernate ORM and Apache Bahir (extensions to Apache Spark). Since few years working on distributed core-banking platform for major European bank. Perviously worked for big-tech companies such as Oracle, IBM, HP and TIBCO. In spare time, I enjoy sailing and photography.

icon
More IT & Software courses

$49.99

$10.99

$124.99

$19.99

$11.99

$19.99

icon
Reviews

4.3

187 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Aayush Mishra on 6/29/2024

Very good content, but hard to understand and follow along at times.

By Cezary on 10/27/2022

Great lecture! This course seems to be short but it covers important topics of distributed systems in compact and understandable way without wasting time on trivial things. It is great example how this udemy courses should look like. Lukas, keep going with next lectures!

By Sandra Bergson on 9/19/2022

This course is unique! Lucas presents difficult challenges of distributed systems in very practical way. I was amazed how those 4 hours enabled me to rethink refactoring of our monolith application into modular micro services. Thank you.

By Tirlipirli on 6/21/2022

Temat interesujący, ale brakuje mi transkrypcji - wolałabym sobie szybko przeczytać materiał niż słuchać lektora mówiącego po angielsku z polskim akcentem.

By Mark Freedman on 3/19/2022

A lot of the slides aren't readable (the one with small pictures scrunched in a corner). The code screen shares are also hard to read at 720p. Would be nice if the class mentioned about having docker and other things preinstalled.

By Neeraj Kumar Nirala on 2/19/2022

Very deep explanation of Kafka and cassandara in context of distributed system. etcd cluster can be bit more easy to understand as it is more complex to understand. As a whole it's a great course to understand distributed, scalable,fault tolerance and resilience system.

By Maciek on 12/23/2021

It is a great lecture which brings up all important topics related to distributed applications and systems in one place. Moreover, it tries to find common implementation elements in distributed system component types and explains core algorithms used.

By Ivan Rusko on 12/20/2021

I still need to complete Kafka part, but so far, explanation of ETCD and Cassandra was clear and useful. I used Cassandra as a cache in one project, but now I gained more understanding of partition and clustering keys. Thanks a lot for hard work putting this lecture together...

By Rohit Patil on 11/29/2021

I really liked Distributed Messaging section. I thought, I knew Apache Kafka pretty well, but after the course, I realized some of the internal mechanisms that I have not explored before. I can easily recommend this lecture!

By Mateusz Mróz on 11/22/2021

The lessons were great, simple and very detailed. The course has covered a lot of necessary topics that can happen in most cases when working with distributed systems as an architect or developer. Thank you for the course, Łukasz. Obviously, I will use this knowledge into my work place!

Showing all 10 reviews on CourseDuck

Read all 187 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 86 / 100