Distributed Architectural Design Patterns

Modern Three-Tier [2:25]

Sharded [16:49]

Lambda [28:39]

Streaming [39:57]

Presentation - Business - Data [2:54]

  • (JSP EJB Oracle)
  • (React.js Node.js Cassandra)

Strengths [12:43]

  • Rich front-end framework (scale, UX)
  • Hip, scalable middle tier
  • Basically infinitely scalable data tier

Weaknesses [14:57]

  • State in the middle tier

Overall Rating [15:32]

  • Scalability 4
  • Hipness 2
  • Difficulty 3
  • Flexibility 5

When Sharding Attacks [19:53]

Strengths [23:38]

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

Weaknesses [24:56]

  • Complexity
  • No comprehensive view of data (ETL)
  • Oversized shards

Overall Rating [28:00]

  • Scalability 3
  • Hipness 1
  • Difficulty 4
  • Flexibility 3

http://softwareengineeringdaily.com/2016/08/19/apache-beam-with-frances-perry

Messaging [34:42]

Kafka [35:09]

Strengths [38:20]

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

Weaknesses [39:09]

  • Complex to operate and maintain
  • No, seriously

Overall Rating

  • Scalability 5
  • Hipness 1
  • Difficulty 5
  • Flexibility 2

Streaming [40:04]

  • 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 [41:55]

Database Abstraction [45:25]

Storing Data in Messages [46:26]

  • Retention policy? Don’t be so hasty
  • Whole-hearted I/O performance
  • O(1) writes
  • Partitioning, replication
  • Elastic scale

First-class events [47:07]

Streams API for kafka [48:05]

  • Core Kafka since 0.10 (May, 2016)
  • Filters, aggregations, joins
  • Doesn’t require a separate cluster!
  • Keep stream computation near your code

Overall Rating

  • Scalability 5
  • Hipness 5
  • Difficulty 4
  • Flexibility 5