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.
Building Modern Distributed Systems with Java
Instructor: Packt - Course Instructors
Sponsored by Coursera Learning Team
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.
Skills you'll gain
- Cloud Computing
- Network Infrastructure
- Distributed Computing
- Load Balancing
- Apache Kafka
- Database Management Systems
- Coordinating
- Data Pipelines
- Computer Systems
- Database Architecture and Administration
- NoSQL
- Database Systems
- Data Infrastructure
- Data Store
- Cloud Engineering
- Apache Cassandra
- Software Architecture
- Operational Databases
- Computer Science
- Software Engineering
Details to know
Add to your LinkedIn profile
3 assignments
October 2024
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
Recommended if you're interested in Information Technology
Open new doors with Coursera Plus
Unlimited access to 10,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