This repository features a curated collection of 10 hands-on projects demonstrating the evolution of network communication in software architecture. The projects trace a clear learning path from low-level networking primitives to modern, scalable microservice architectures.
To practically implement and compare different communication protocols, understanding their specific use cases, performance trade-offs, and integration patterns in distributed systems.
1. Low-Level Networking (Sockets)
- Explored foundational networking concepts by implementing raw TCP and UDP communication.
- Managed byte streams, packet delivery, and basic client-server interactions.
2. High-Performance RPC (gRPC)
- Transitioned to optimized, high-speed communication using gRPC.
- Leveraged HTTP/2 for multiplexed streams and Protocol Buffers (Protobuf) for efficient, language-agnostic binary serialization.
3. Modern Microservices (Spring Cloud)
- Built a fully functional distributed system using Spring Boot.
- Implemented dynamic service discovery and registration with Netflix Eureka.
- Streamlined inter-service communication using declarative REST clients (OpenFeign).
4. Containerization & Orchestration
- Packaged the microservices ecosystem using Docker.
- Simplified deployment and local orchestration via
docker-compose, ensuring consistent environments across machines.
- Languages & Frameworks: Java, Spring Boot, Spring Cloud
- Protocols: TCP, UDP, HTTP/1.1, HTTP/2, gRPC
- Serialization: Protocol Buffers (Protobuf), JSON
- Infrastructure: Netflix Eureka, Docker, Docker Compose
Developed by Roland K.