Building Microservices: Designing Fine-Grained Systems
Rate it:
Read between October 6 - October 22, 2015
7%
Flag icon
Perhaps the term architect has done the most harm.
7%
Flag icon
this view of the architect leads to some terrible practices. Diagram after diagram, page after page of documentation, created with a view to inform the construction of the perfect system, without taking into account the fundamentally unknowable future. Utterly devoid of any understanding as to how hard it will be to implement, or whether or not it will actually work,
7%
Flag icon
we should think of our role more as town planners than architects for the built environment.
8%
Flag icon
One person’s principles are another’s practices.
12%
Flag icon
When services are loosely coupled, a change to one service should not require a change to another.
12%
Flag icon
We want related behavior to sit together, and unrelated behavior to sit elsewhere.
13%
Flag icon
Prematurely decomposing a system into microservices can be costly, especially if you are new to the domain. In many ways, having an existing codebase you want to decompose into microservices is much easier than trying to go to microservices from the beginning.
13%
Flag icon
When you start to think about the bounded contexts that exist in your organization, you should be thinking not in terms of data that is shared, but about the capabilities those contexts provide the rest of the domain.
14%
Flag icon
I called this onion architecture, as it had lots of layers and made me cry when we had to cut through it.
18%
Flag icon
Famously, the first of the fallacies of distributed computing is “The network is reliable”. Networks aren’t reliable.
24%
Flag icon
Postel’s Law (otherwise known as the robustness principle), which states: “Be conservative in what you do, be liberal in what you accept from others.”
61%
Flag icon
For passwords, you should consider using a technique called salted password hashing
61%
Flag icon
Badly implemented encryption could be worse than having none,
71%
Flag icon
Timeouts
71%
Flag icon
Circuit Breakers
71%
Flag icon
Bulkheads
72%
Flag icon
Isolation
72%
Flag icon
Idempotency
72%
Flag icon
Scaling
73%
Flag icon
Splitting Workloads
73%
Flag icon
Spreading Your Risk
73%
Flag icon
Load Balancing
74%
Flag icon
Worker-Based Systems
74%
Flag icon
Scaling Databases
75%
Flag icon
I often see people changing database technology when they start hitting limits on how easily they can scale their existing write volume. If this happens to you, buying a bigger box is often the quickest way to solve the problem, but in the background you might want to look at systems like Cassandra, Mongo, or Riak to see if their alternative scaling models might offer you a better long-term solution.
76%
Flag icon
Caching
78%
Flag icon
CAP Theorem
79%
Flag icon
“Friends don’t let friends write their own crypto”
79%
Flag icon
“Friends don’t let friends write their own distributed consistent data store.”
82%
Flag icon