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.
Recommended experience
What you'll learn
Configure and manage distributed databases such as Apache Cassandra and set up resilient RPC communication.
Compare different consensus algorithms, like RAFT, and evaluate the use of service discovery techniques.
Assess the performance of distributed systems, focusing on scalability, fault tolerance, and coordination mechanisms.
Design and implement a fully functional, scalable distributed system using Java, with features like messaging systems and cluster coordination.
Details to know
Add to your LinkedIn profile
October 2024
3 assignments
See how employees at top companies are mastering in-demand skills
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
There are 5 modules in this course
In this module, we will explore the fundamental concepts of distributed systems, starting with how computer systems' architecture has evolved over time. We will also cover the unique challenges posed by distributed compounding and introduce a use case that will be central to the course project. Finally, we will guide you through a practical setup for the Tiny-URL project to solidify your learning.
What's included
4 videos1 reading
In this module, we will dive into the importance of communication within distributed systems, focusing on message transport and communication patterns. You'll learn about traditional load balancers, service registries, and service meshes that help manage distributed services. We'll also cover idempotent service design to ensure fault tolerance. Finally, you'll get hands-on experience configuring resilient Remote Procedure Calls (RPC) and exploring service discovery technologies.
What's included
8 videos
In this module, we will examine the role of distributed databases in modern systems, starting with a comparison between traditional RDBMS systems and NoSQL databases. You'll learn about advanced techniques like data sharding and consistent hashing, along with the implications of the CAP theorem. A brief introduction to Apache Cassandra will set the stage for the hands-on practice, where you'll use Cassandra in the Tiny-URL project to implement a distributed database solution.
What's included
5 videos1 assignment
In this module, we will explore how cluster-wide coordination is crucial for maintaining consistency in distributed systems. You'll learn about the RAFT consensus algorithm and its implementation, along with a brief introduction to ETCD. Key techniques like leader election and distributed mutexes will be covered, and we'll discuss the deployment requirements for strongly consistent systems. Finally, you'll gain hands-on experience by adding cluster coordination to the Tiny-URL project.
What's included
8 videos
In this module, we will explore distributed messaging systems, focusing on asynchronous communication patterns and message-oriented middleware. You'll get an introduction to Apache Kafka and understand how it operates as a distributed system. We'll also cover event-driven architecture and its advantages in distributed systems. In the practice session, you'll gain hands-on experience with distributed messaging systems to enhance the Tiny-URL project.
What's included
5 videos2 assignments
Instructor
Offered by
Why people choose Coursera for their career
New to Cloud Computing? Start here.
Open new doors with Coursera Plus
Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.
If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. You’ll be able to submit assignments once the session starts.
Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. You’ll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.