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".
Building Modern Distributed Systems with Java
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.
About the Author: Udemy
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.
Watch Online 30 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 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 |
Get instant access to all 29 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionRelated courses
-
Updated 2y agoData Structures in Java
By: Java SpecialistsData Structures in Java (Late 2017 Edition) is an action-packed 8 hours of tips and tricks that professional Java programmers have used for the past 20 years.8h 3m -
Updated 2y agoJava Generics
By: Nelson Djalo (Amigoscode)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 unn1h 8m -
Updated 2y agoThe complete guide to running Java in Docker and Kubernetes
By: UdemyIf you need to learn how to run, tune, and maintain JVM applications that run in Docker and/or Kubernetes then this is the course for you. This course is very d4h 39m