Building Microservices: Designing Fine-Grained Systems
Rate it:
Read between September 27 - October 1, 2019
58%
Flag icon
Generally, when we’re talking abstractly about who or what is being authenticated, we refer to that party as the principal.
58%
Flag icon
Authorization is the mechanism by which we map from a principal to the action we are allowing her to do.
58%
Flag icon
So while I think OpenID Connect is the future, it’s quite possible it’ll take a while to reach widespread adoption.
63%
Flag icon
63%
Flag icon
First, if you don’t store it, no one can steal it. Second, if you don’t store it, no one (e.g., a governmental agency) can ask for it either!
63%
Flag icon
The German phrase Datensparsamkeit represents this concept. Originating from German privacy legislation, it encapsulates the concept of only storing as much information as is absolutely required to fulfill business operations or satisfy local laws.
64%
Flag icon
If there is nothing else you take away from this chapter, let it be this: don’t write your own crypto. Don’t invent your own security protocols. Unless you are a cryptographic expert with years of experience, if you try inventing your own encoding or elaborate cryptographic protections, you will get it wrong. And even if you are a cryptographic expert, you may still get it wrong.
64%
Flag icon
Any organization that designs a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization’s communication structure.
68%
Flag icon
68%
Flag icon
No matter how it looks at first, it’s always a people problem. Gerry Weinberg, The Second Law of Consulting
69%
Flag icon
“We expect the website to have a 90th-percentile response time of 2 seconds when handling 200 concurrent connections per second.”
70%
Flag icon
In his book Antifragile (Random House), Nassim Taleb talks about things that actually benefit from failure and disorder. Ariel Tseitlin used this concept to coin the concept of the antifragile organization in regards to how Netflix operates.
71%
Flag icon
Not everyone needs to go to the sorts of extremes that Google or Netflix do, but it is important to understand the mindset shift that is required with distributed systems. Things will fail. The fact that your system is now spread across multiple machines (which can and will fail) across a network (which will be unreliable) can actually make your system more vulnerable, not less.
71%
Flag icon
electrics. Michael Nygard’s book Release It! (Pragmatic Programmers) shows how the same idea can work wonders as a protection mechanism for our software.
71%
Flag icon
77%
Flag icon
Be careful about caching in too many places! The more caches between you and the source of fresh data, the more stale the data can be, and the harder it can be to determine the freshness of the data that a client eventually sees.
78%
Flag icon
We’d like to have it all, but unfortunately we know we can’t. And when it comes to distributed systems like those we build using microservice architectures, we even have a mathematical proof that tells us we can’t. You may well have heard about the CAP theorem, especially in discussions about the merits of various different types of data stores.
79%
Flag icon
We have our consistent, but hard to build and scale, CP system. Why not a CA system? Well, how can we sacrifice partition tolerance? If our system has no partition tolerance, it can’t run over a network. In other words, it needs to be a single process operating locally. CA systems don’t exist in distributed systems.
81%
Flag icon
Swagger lets you describe your API in order to generate a very nice web UI that allows you to view the documentation and interact with the API via a web browser.
82%
Flag icon
83%
Flag icon
Microservices add a lot of complexity, a key part of which comes from the sheer number of moving parts we have to deal with. Embracing a culture of automation is one key way to address this, and front-loading effort to create the tooling to support microservices can make a lot of sense.
1 3 Next »