Clockwork to Complexity: scale in time and software
Software is completely clockwork at the scale of one function, and completely complex in production.
Software is completely clockwork at the scale of one function, and completely complex in production.
At Papers We Love conference, Dr Heidi Howard described requirements for distributed consensus: Safety and Progress. In distributed consensus, multiple servers decide on some value and then report that to their clients. Safety means that the clients never learn about different values; the consensus is all correct and consistent. Progress means that clients do eventually …
When we learn math, geometry, and logic in school, we’re always talking about things that are holding still. The element is in the set or it isn’t. The angle is acute or obtuse or right or we can’t know. Things are related or not. A thing has a property, or doesn’t. Code can have properties. …
Today at J on the Beach, Helena Edelson talked about a lot of things that Akka can do for event streaming, microservices, generally handling a lot of data and keeping it (eventually) consistent across great distances. With opt-in causal consistency! I am amazed by how hard it is to have consistent causality and data across …
Developers have a love-hate relationship with code re-use. As in, we used to love it. We love our code and we want it to run everywhere and help everyone. We want to get faster with time by harnessing the work of our former selves.And yet, we come to hate it. Reuse means dependencies. It means …
Can you take a piece of data in your system and say what version of code put it in there, based on what messages from other systems? and what information a human viewed before triggering an action? Me neither. Why is this acceptable? (because we’re used to it.)We could make this possible. We could trace …
The other day in Budapest, Jez Humble and I wondered, what is the CAP theorem for teams? In distributed database systems, the CAP theorem says: choose two of Consistency, Availability, and Partitioning — and you must choose Partitioning. Consider a system for building software together. Unless the software is built by exactly one person, we …