Building Modern Distributed Systems with Java

Coursera MOOC / Non-credit USD 49
Enroll now →
Building Modern Distributed Systems with Java

About this course

Updated in May 2025. This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In today’s tech landscape, distributed systems form the backbone of scalable and reliable applications. This course walks you through the foundational concepts of distributed computing using Java, guiding you from the evolution of system architectures to mastering the intricacies of modern distributed databases. You’ll explore key topics like remote procedure calls (RPCs), asynchronous communication, and cluster coordination to build resilient systems. Through a mix of theory and practice, you’ll delve into the communication protocols that power distributed systems. Concepts like service registries, load balancing, and message transport are explored in depth, preparing you to design systems that scale effortlessly. Each module includes hands-on projects, such as configuring a Tiny-URL system to reinforce your learning with real-world applications. By the end of this course, you will have a deep understanding of how to architect distributed systems that meet today’s technical demands. You’ll be equipped to implement robust solutions using Java, covering everything from databases and messaging systems to consensus algorithms and event-driven architectures. Whether you’re designing microservices or large-scale data pipelines, this course has you covered. This course is designed for Java developers and software engineers with a basic understanding of object-oriented programming and networking. Prior experience with databases and system design concepts is beneficial but not required.

What you'll learn

  • Design and implement remote procedure calls (RPCs) in Java applications
  • Configure service registries and load balancing for scalable systems
  • Build asynchronous communication patterns for distributed architectures
  • Implement cluster coordination and consensus algorithms
  • Design event-driven architectures and message-based systems
  • Work with distributed databases and their consistency models
  • Apply architectural patterns for microservices and data pipelines

Course objectives

  • Understand the foundational principles of distributed computing
  • Master communication protocols used in distributed systems
  • Build resilient systems that scale effectively
  • Implement real-world distributed system solutions using Java

Skills you'll gain

Related courses

Course details are provided by the platform and may change — always confirm on the provider's site. Links may be affiliate links.