What Is Programming? And How To Get Started
January 28, 2025
Article
Recommended experience
Intermediate level
Ideal for Java developers & software engineers with an OOP & networking understanding. Databases & system design concepts experience is beneficial.
Recommended experience
Intermediate level
Ideal for Java developers & software engineers with an OOP & networking understanding. Databases & system design concepts experience is beneficial.
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.
Add to your LinkedIn profile
October 2024
3 assignments
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
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.
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.
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.
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.
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.
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.
5 videos2 assignments
Packt helps tech professionals put software to work by distilling and sharing the working knowledge of their peers. Packt is an established global technical learning content provider, founded in Birmingham, UK, with over twenty years of experience delivering premium, rich content from groundbreaking authors on a wide range of emerging and popular technologies.
Course
Board Infinity
Specialization
LearnKartS
Specialization
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Earn a degree from world-class universities - 100% online
Upskill your employees to excel in the digital economy
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.
If you complete the course successfully, your electronic Course Certificate will be added to your Accomplishments page - from there, you can print your Course Certificate or add it to your LinkedIn profile.
This course is one of a few offered on Coursera that are currently available only to learners who have paid or received financial aid, when available.
You will be eligible for a full refund until two weeks after your payment date, or (for courses that have just launched) until two weeks after the first session of the course begins, whichever is later. You cannot receive a refund once you’ve earned a Course Certificate, even if you complete the course within the two-week refund period. See our full refund policy.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work.
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
These cookies enable the website to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly.