Architecture of Distributed Systems

202401181241
Status: #idea
Tags: DC

Architecture of Distributed Systems

Layered Architecture Style

Service Oriented Architecture

Object-based

Resource-based

Microservice Architecture

Design Principle

Design of Data Persistence

Publish-Subscribe Style

Temporally Coupled Temporally Decoupled
Referentially Coupled Direct (Phone call) Mailbox (E-Mail)
Referentially Decoupled Event-based Shared data space
Info

Temporally coupled processes need to be running at the same time

Note

Kafka is a light-weight and extremely scalable event-based data streaming tool

Example: Linda Tuple Space

Middleware

Interceptors

Example: Web Server

TODO Image from slide 5

<strong><?php ech $_SERVER['REMOTE_ADDR']; ?></strong>

Different Types of Distribution

  1. Vertical distribution
    • Layers are distributed in multiple machines
    • Client server
  2. Horizontal distribution
    • Both client and servers are physically split and distributed in different machines
    • Peer to peer
      • All processes are equal
      • Each process will act as a clinet and server
Attention

Each machine need NOT be running identical functions

Peer to Peer

Structured

Hypercube

Chord/Ring

Unstructured

Example: BitTorrent Example

Hybrid Architecture: Edge-Cloud


References

  1. Published Interface - Article by Martin Fowler in IEEE Software
  2. Network File SystemPreviously on "The Bold Type." You are the future
  3. Trackerless Torrents
  4. How does DHT get bootstrapped?