- Load Shedding: Discarding excess traffic.
- Rate Limiting: Limiting the rate of requests by users.
- Failed Requests Handling: Strategies like retries or moving to dead-letter queues.
- Backpressure: Signal to the producer to slow down.
- Elastic Scaling: Dynamically adjusting resources based on demand.
. Host Discovery:
- DNS: The Domain Name System translates domain names to IP addresses.
- Anycast: Routing strategy where a single destination address has multiple routing paths to two or more endpoint destinations.
. Service Discovery:
- Server‑side and Client-side Discovery Patterns: Mechanisms where services find each other’s network locations.
- Service Registry: A database containing the network locations of service instances.
. Peer Discovery:
- Peer Discovery Options: How nodes in a network find each other.
- Gossip Protocol: Nodes randomly exchange information, which gradually propagates through the system.
Choosing a Network Protocol:
- TCP, UDP, and HTTP: Decision depends on use case requirements like reliability, speed, and connection state.
. Push and Pull Technologies:
- Short Polling: Client frequently asks the server for new data.
- Long Polling: Client requests information and waits for the server to respond.
- Websocket: Protocol that allows two-way communication with a server over a single, long-lived connection.
- Server-Sent Events: Server pushes updates to the client over an HTTP connection.\
Large-scale Push Architectures:
- C10K and C10M Problems: Challenges of handling 10,000 and 10 million concurrent connections respectively.
- Large-Scale Push Architectures: Techniques like event-driven programming to handle large numbers of simultaneous connections.
- Problems of Long-Lived Connections: Resource management, detecting stale or “dead” connections, and handling dropped connections.