Introduction
Problem Statement
HTTP/2-vs-HTTP/1.1
gRPC-vs-REST - Performance Comparison
Course Structure
Protocol Buffers
Proto - Introduction
[Resource] - Proto Dependencies
Proto - Project Setup
Proto - A Simple Person Message Creation
Proto - Java Options
Proto - Person Builder Pattern Demo
Proto - Equals Method
Proto - Serialization & Deserialization
[Resource] - Jackson Dependency
Proto vs JSON - Performance Comparison - Part - 1
Proto vs JSON - Performance Comparison - Part - 2
Proto vs JSON - Performance Comparison - Part - 3
Proto - Adding Comments
Proto - Auto Generate JS File - Demo
[Optional]-[Resource] - Protoc
Protoc Tool Installation
Proto - Scalar Types
Proto - Composition Demo
Proto - Collection Demo
Proto - Map Demo
Proto - Enum Demo
Proto - Default Values
Proto - Importing Modules
Proto - OneOf - Demo
Proto - Wrapper Types
Proto - How It Works - Demo
Proto - Tags
Proto - API/Message Changes - Part - 1
Proto - API/Message Changes - Part - 2
Proto - API/Message Changes - Part - 3
Proto - API/Message Changes - Part - 4
Proto - Summary
Quiz
gRPC - Introduction & Unary RPC
gRPC - Introduction
gRPC - RPC Types
[Resource] - gRPC Dependencies
gRPC - Project Setup
Unary - Service Definition
Unary - BankService - getBalance - Implementation
Unary - GRPC Server
Unary - Client's Blocking Stub
BankService - A Simple DB Using Map
BankService - A Simple DB Using Map - Note
[Resource] - BloomRPC
Unary - BloomRPC - Demo
Unary - Node Client
gRPC - Server Streaming RPC
Server Streaming - Introduction
Server Streaming - Service Definition
Server Streaming - Money Withdrawal Service Implementation
Server Streaming - BloomRPC Test
Server Streaming - Validations / Error Handling
gRPC - Error Codes
Server Streaming - Blocking Client
Server Streaming - Async Client
Server Streaming - Count Down Latch
Server Streaming vs Unary
Quiz
gRPC - Client Streaming RPC
Client Streaming - Introduction
Client Streaming - Service Definition
Client Streaming - Bank - Deposit Request - Implementation - Part - 1
Client Streaming - Bank - Deposit Request - Implementation - Part - 2
Client Streaming - Client Response Observer Implementation
Client Streaming - Stream Observer - How It Works
gRPC - Bi-Directional Streaming RPC
BiDi - Introduction
BiDi - Service Definition
BiDi - Transfer Service - Implementation
BiDi - Client Side Stream Observer Implementation
BiDi - Client Side Stub Request And Response
BiDi - Transfer Service Demo
BiDi - Single Response vs Streaming Response
BiDi - How To Perform CRUD
Snakes & Ladders - Game / Assignment
Game - Introduction
[Optional]-[Resource]-Rules
Game - Hints
Game - Service Definition
Game - Die Streaming Observer Implementation
Game - Applying Snakes & Ladders Rules
Game - Players State Streaming Observer Implementation
Game - Client Server Finale
Channel & Load Balancing
Load Balancing - Introduction
Load Balancing - Lazy Connection Demo
Load Balancing - Server Side Load Balancing
Load Balancing - Nginx Install
Load Balancing - Project Setup
Load Balancing - Running Multiple gRPC Servers
[Resource] - Nginx Conf
Load Balancing - Nginx Conf
Load Balancing - Nginx Load Balancing Demo - Part - 1
Load Balancing - Nginx Load Balancing Demo - Part - 2
Load Balancing - Client Streaming Request
Load Balancing - SubChannels
Load Balancing - A Simple Service Registry Implementation
Load Balancing - Name Resolver
Load Balancing - Name Resolver Provider
Load Balancing - Client Side Load Balancing Demo
Load Balancing - Summary
Deadline
Deadline - Introduction
Deadline - Project setup
Deadline - Unary RPC - Demo
Deadline - Server Streaming RPC Issue
Deadline - Server Streaming RPC - Issue Fix
Interceptors
Interceptor - Introduction
Interceptor - Global Deadline Implementation
Interceptor - Global Deadline - Demo
Interceptor - Key / Value Pairs - Introduction
Interceptor - Attaching Client Service Token Via Metadata
Interceptor - Client Service Token Validation - Implementation
Interceptor - Client Service Token Validation - Demo
Interceptor - Attaching User Session Token - Introduction
Interceptor - Attaching User Session Token - Implementation
Interceptor - User Session Token Validation - Implementation
Interceptor - User Session Token Validation - Demo
Interceptor - Context - Introduction
Interceptor - User Role - Auth Interceptor Implementation
Interceptor - Accessing User Role Via Context
Interceptor - Context Demo
Error Handling Via Metadata
Error Handling - Introduction
Error Handling - Proto For Custom Error Message
Error Handling - Service Layer Changes
Error Handling - Custom Error Via Metadata
SSL / TLS
SSL/TLS - Introduction
[Optional-Resource] - SSL/TLS
SSL/TLS - Becoming CA
SSL/TLS - Generating Certificates
SSL/TLS - Server Side Changes
SSL/TLS - Demo
Miscellaneous
Misc - Executors
Misc - Accessing gRPC via Web
Spring Boot Integration
Spring Boot Integration - Introduction
Spring Boot Integration - Application Walk-through
Spring Boot Integration - Spring Initializer
Spring Boot Integration - Multi Module Maven Project
Spring Boot Integration - Service Definition
Spring Boot Integration - User Service - Implementation
Spring Boot Integration - User Service - Resources
Spring Boot Integration - Movie Service - Implementation
Spring Boot Integration - Movie Service - Resources
Spring Boot Integration - Aggregator Service - Controller
Spring Boot Integration - User Movie Suggestion Service - Part 1
Spring Boot Integration - User Movie Suggestion Service - Part 2
Spring Boot Integration - User Movie Suggestion Service - Demo
Course Resources
Resources