Thursday, October 15, 2020

System design: Four Distributed Systems Architectural Patterns by Tim Berglund

 Here is the link. 

Reference Architectures [2:08] Modern Three-Tier [2:25 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 Sharded [16:49] 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 Lambda [28:39] 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 [39:57] 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

No comments:

Post a Comment