Building Modern Distributed Systems with Java

A significant percentage of large-scale enterprises experience performance issues with their business-critical applications. Most of the production systems have been built on top of legacy, monolith technologies. The recent popularity of micro-services will not fulfill its promise of decoupled, scalable, and fault-tolerant systems, unless “done right”. While entering the world of micro-services, engineers start building distributed applications, where robust remote procedure calls and cluster coordination are a must.

You will look at various technologies, algorithms, and design patterns here. Some of them are 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, and many more. Finally, you will also see the principles of various distributed systems designs; for example, master-less versus with leaders, poll-based versus push-based, immediate versus eventual consistency.

After completing the course, learning new distributed database technology would be easier, because you will know the commonly reused techniques, including their pros and cons.

All the resource files are available on the GitHub repository at https://github.com/PacktPublishing/Building-Modern-Distributed-Systems-…

Type
video
Category
publication date
2022-04-21
what you will learn

Look at the concepts of distributed systems
Understand synchronous and asynchronous communication patterns
Study service meshes and Idempotent service design
Differentiate between traditional RDBMS systems and NoSQL
Learn deployment requirements for strongly consistent distributed systems
Build distributed URL-shortening services like Tiny-URL

duration
234
key features
Design and implement globally distributed, scalable, fault-tolerant, and resilience applications * Understanding of common algorithms and techniques used in the majority of NoSQL databases and streaming platforms * In-depth knowledge of Apache Cassandra, Apache Kafka, and ETCD
approach
The course is short yet complete with content delivered with a very practical approach. There are a lot of code examples and applied best practices to follow along at the end of every section. The author will cover Service Registry and Discovery in detail so that you will know how to implement your own framework on top of ETCD. Throughout the course, you will build a distributed URL shortening service.
audience
This course is designed for Java developers and architects who wish to broaden their knowledge of distributed computing, NoSQL databases, efficient RPC calls, messaging middleware, and cluster coordination. It is also recommended for anyone working in modern IT landscapes. The course may be a good recap for people preparing for systems design interviews.

You will need proficiency in Java programming language, and an open mind to discover the challenges of distributed computing. Beginner-level knowledge in the Spring Boot framework will help you get along with the course easily.
meta description
Be a part of a great course where you will be understanding distributed, scalable, fault-tolerance, and resilience systems along with building, designing, and implementing applications through these systems.
short description
This course brings together all the important topics related to modern distributed applications and systems in one place. Explore the common challenges that appear while designing and implementing large-scale distributed systems, and how big-tech companies solve those problems. Throughout the course, we are going to build a distributed URL shortening service.
subtitle
Learn how to design large-scale modern distributed systems with NoSQL databases, messaging queues and cluster coordination using Java
keywords
Distributed systems, Java, building modern distributed systems, Apache Cassandra, Apache Kafka and ETCD, service registry and discovery, service mesh, Apache Cassandra, ETCD, idempotent service design, retry logic, sharding and consistent hashing
Product ISBN
9781804613313