In this architectural style, the system is unidirectional. One module follows the other. Pipes connect these modules, which can be a producer (feeds the pipeline with data), filter (manipulates the data that it receives), or consumer (which is the end of the pipeline and can persist the data in a database). The...
The handshake between server and client doesn't cost bandwidth, although it makes a full round trip. Until the connection is open, the bandwidth is zero. Lowering the handshake fastens the connection. The earlier the handshake ends, the faster the connection starts. To beat this penalty for every connection, we put...
Accidental complexity happens when teams don't care about their codebase, applications, and systems enough and when they break down tasks in the wrong way. The name accidental also explains that it usually happens unwittingly. The teams unintentionally build up accidental complexity, and it makes their job more...
Embracing inspections/monitoring and third parties to check how you are doing is a good learning mechanism. While they are inspecting, we can ask for a better solution that they already know (and learned) from others. This also looks like a rubber duck programming and pairing as well. Source(s): Turn the Ship...
As a leader, you're responsible for people and their promotions. If you are making the call for promotion for your team member, then it's easier. If you're not the one who decides on the promotion, you need to learn how to play the promotion game. Every company has different game rules. But regardless of the...
In software reliability and availability, there are usually vague descriptions. When we say we offer good performance, what does it mean? This is why we use percentiles. Let's think about response times, often used in SLOs, along with percentiles. In SLAs, we define X ms response time in the 95th percentile. To...
The consistency model is defined as a contract between the software (process) and memory implementation (data store). Related Note(s): 42: What to Consider While Designing a Software System; DDIA: Consistency and Consensus in Distributed Systems; Data Models and Query Languages; Reply via email | Reply via Mastodon...
Usually, the leader of the multiple nodes serves the data; all read & write operations pass through the leader. This approach ensures that the served data acts like it is served from one node. There is a real-time guarantee for the data. The model is called strong consistency or linearizability. The leader might not...
In the leader-follower data systems, if we don't pin clients to the followers, the clients are able to read data through different followers. The followers might be out-of-date. One follower might be behind the other due to asynchronous data replication. So when a client requests data first from one and then...
When we have values that define our personality, we always act accordingly. So, our values are actually limiting us. For example, if we value friendship, we will never yell at our friends, even if we really want to. If we value kindness, we will never tell a person that we hate them and never want to see them again,...
The focus is fundamental for achieving many things. Sticking to the values is one of them. Accepting a value requires saying no to the things that break the value. For example, if fidelity is one of our values, we will and need to, say no to any cheating in our relationships. Saying yes and sticking to a thing...
Death is an unavoidable yet the most shunned concept in life. We live as we can escape from it. We don't think about it and continue our lives as if it is not there. The immortal feeling gives us entitlement. Immortality, or fake immortality, prevents us from understanding whatever we do will stay in this world. At...