May 12, 2018

[design] 4 patterns for distributed sysmtem architecture

4 patterns for distributed sysmtem architecture

Modern three-tier

Strengths

  • Rich front-end framework
  • Hip, scalable middle tier
  • Basically infinitely scalable data tier

Weaknesses

  • State in the middle tier


Sharded

Strengths

  • Client isolation is easy (data and deployment)
  • Known, simple technologies

Weaknesses

  • Complexity
  • No comprehensive view of data
  • Oversized shards

DB:
read replicate


  • Partition problem.
    • Master is dead, reelect master.

Lambda

Streaming vs. Batch
Unbounded(immutible data) vs. Bounded

e.g
event system

Strengths

  • Optimizes subsystems based on operational requirements
  • Good at unbounded data

Weaknesses

  • Complex to operate and maintain
    • write same code twice
  • For analysis for best!

Streaming

  • Integration is a first-class concern
  • Life is dynamic; databases are static
  • Tables are streams and streams are tables
  • Keep your services close, your computation closer

Integration

Bad:

Kafka:


Event stream:
transfer database/table to stream...
i.e into a log!

Storing data in messages
First-class message system
  • events get consumed though message stream system
  • Then, each request/response from the sub-system which hooked on to the stream system.
    i.e stream system act like the 'HUB'
  • Keep stream computation near our code.
Winner is: Streaming :-D


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.