If you see my article for the second time, please follow my personal original public account “Cross-border Architect” oh ~


Every Friday11:45Deliver on time.
And, of course, every now and then


Yes, the best audience for this gift is programmers. However, if you’re not a programmer, believing in these things will help you understand and communicate with programmers better.


As those of you may know, my previous post on Distributed Systems Concerns — 360° Surveillance is the last in a series I started last year on Distributed systems Theory. (By the way, the number in that article was wrong, 22 instead of 21…)

This eight-month, bi-weekly series is actually my second original series. The previous series was “Domain-driven Design”, which I wrote on Bloggarden from October 2016 to February 2017.

www.cnblogs.com/Zachary-Fan…

In fact, I think about it now and have a little pity. Why is that?

As of last year (2018), he had been engaged in front-line coding for six years. Say long long, say short also not short.

These 6 years, can shameless say, feel oneself still quite fight, because never feel oneself grow in stagnation.

But may also be due to their patronize buried in the cart, now look back in the whole process of conscious precipitation down their own things are relatively few, think about it really feel some pity.

A lot of ideas, views, if the next do not meet the kind of scene at that time, it is estimated that this life also can not recall.


Since 2018, due to the adjustment of work content, I have been further away from the front-line coding work, and the proportion of time invested in technology has also been further reduced. Now it’s about 10%.

Before that, distributed systems was the last area I focused on, so write it down before everything in my head disappeared. Hence the “Theory of Distributed Systems” series.

I don’t know if I’ll ever have a chance to write a series of articles that are purely technical.


Those of you who have read several articles of this series may know that this series is really based on theory. There are not many specific technical details, only some core parts.

You might think, well, that’s a little down to earth.

Yes, that’s right, people, lazy is nature, everyone likes to “take advantage of” things, Z brother me too. (I miss the days of home delivery…)

After all, “laziness” is to promote our division of labor and cooperation, to promote the development of human society.

But back to reality, in technology, theory is inevitable if we don’t just know what it is, but know what it is. Because what theory tells us is why and how to do it, how is based on why. Why comes first, so I think why is more important than how.

Besides, today’s technology is upgrading faster and faster. If you know how to use TECHNOLOGY A, but don’t know why, when you use technology B, you will have A black eye, and you don’t know the advantages and disadvantages of TECHNOLOGY B compared with technology A.

So, I think this series should help you in the long run.



Nowadays, the Internet has become the infrastructure of the whole society, taking an increasingly large part in our lives. Distributed systems are not the preserve of a few large companies, so “distributed systems theory” is probably something you’ll need to learn sooner or later.

In addition, with the commercialization of 5G, the era of the Internet of everything is coming. To carry such a large amount of computing, there is an opportunity for “distributed systems”.

Therefore, I think “distributed system” will be more and more widely used in the future.

So, even if you haven’t been exposed to distributed systems yet, I believe you will be in the near future.

If you’re not already involved in distributed systems, you’re advised to “speed read” what you know and save for yourself. Read carefully when you use it later and think about why.

If you are already working in distributed systems, then you can read carefully according to the categories that Z. gives you: D.


[Data consistency]

Distributed Systems Concerns 1 — Data Consistency (getting started with Understanding consistency)

“Distributed Systems Concerns 2: Data consistency through consensus” (What’s going on with mainstream consensus algorithms?)

“Distributed Systems Concerns (3) — Consensus’s Sibling” Transactions “(the mainstream implementation of” distributed transactions “)


[High availability]

“Distributed Systems Concerns (4) — Getting Started with High Availability”

“Distributed Systems Concerns (5) — Just this one, Understand” Load Balancing “is ok” (the core logic of “load balancing”)

Distributed Systems Concerns (6) — How to Implement “Load Balancing”? (Best practices when implementing “load balancing”)

“Distributed Systems Concerns (7) — Can machines be added without” load Balancing “?” (The drawbacks of “load balancing” need to be noted)

Distributed Systems Concerns (8) — How to Be Smart in a System Full of Thunder? Tip # 1 (Best Practice for “Circuit Breakers”)

“Distributed Systems Concerns (9) — If you want to Beat Traffic Limiting? Just this one” (Best Practices for Traffic Limiting)

Distributed Systems Focus (10) — The last big tip to Make Your System “Unbreakable” — “Downgrade” (Best practices for “downgrade”)

“Distributed Systems Concerns (11) — Compensation and Best Practices that 99% of people can Understand” (Best Practices for Compensation)


【 scalability 】

Distributed Systems Concerns (12) — A Detailed explanation of “Stateless” (” stateless “and” stateful “)

Distributed Systems Concerns (13) — High Cohesion and Low Coupling in Detail (Best Practices for High Cohesion and Low Coupling)

Distributed Systems Concerns (14) — Resilient Architecture (How can architectures be resilient?)

Distributed Systems Concerns (15) — “Dewarehousing” (How to scale out databases horizontally?)


[High performance]

Distributed Systems Concerns (16) — A 360 degree Interpretation of “Caching” (How to use Caching well?)

“Distributed Systems Concerns (17) — Write DB first or” Cache “(three common questions for caching)

“Distributed Systems Concerns (18) — The Seeds of Destruction Behind Caching” (Cache Avalanche & Cache Penetration)

Distributed Systems Concerns (19) — Asynchrony in Its Simplest form (Asynchrony pits and Best Practices)

Distributed Systems Concerns (20) — What is the difference between Blocking and non-blocking? (Blocking & Non-blocking & Asynchronous & Synchronous)


【 Easy test 】

Distributed Systems Concerns (21) — The Six-Pronged Sword for Building Testable Systems (6 ways to make systems easier to test)


Easy operation and maintenance

Distributed Systems Concerns (22) – 360° Monitoring (how to do monitoring step by step?)


Author: Zachary

Source: www.cnblogs.com/Zachary-Fan…


If you like this article, you can click the “thumb” on the left.

That gives me a little bit of feedback. 🙂

Thank you for your help.


▶ About the author: Zhang Fan (Zachary, personal wechat id: Zachary-ZF). Adhere to carefully polish every piece of high quality original. This article was originally published under the public ID: Zachary_ZF. <– Click to read popular articles

Publish original content regularly: architecture design, distributed system, product, operation, some thoughts.

If you’re a junior programmer and want to move up but don’t know where to start. Or maybe you’ve been working as a programmer for years and have gotten stuck in some kind of bottleneck and want to broaden your horizons. Welcome to follow my public account “Cross-border Architect”, reply to “Technology” and send you a mind map that I have been collecting and organizing for a long time. If you’re in business, there’s nothing you can do about a changing market. Or want to know the mainstream operation strategy, in order to enrich their “warehouse”. Welcome to follow my public account “Cross-border Architect”, reply to “Operation” and send you a mind map that I have been collecting and organizing for a long time.