I came up with the name this year, it signifies that the control plane (logical, Greek) and data plane (structural, Roman) often share many similarities, but they’re different alphabets, and there isn’t always a bidirectional, information-preserving mapping between them. There always needs to be a one-way mapping (control -> data) though!
Control Plane and Data Plane runtime components must be loosely coupled:
Control plane components can, and usually should, store configuration in a CP store. It’s OK for configuration update functionality to be unavailable sometimes, because it’s important that it be consistent.
Data plane components can, and usually should, store data in an AP store. It’s OK for data to be eventually consistent, but it must always be available.
A conductor is a service that watches for control plane events, and implements them, in the particular region of the data plane it’s responsible for. This is where the Greco-Roman part comes in: configuration entities of type alpha in the domain model may correspond to A’s in the data plane: there are often clean mappings, but they’re definitely different alphabets.
For example, a Lambda Conductor might observe CUDs of Query objects (Greek: alphas), and create/update/delete corresponding functions on AWS Lambda (Roman: A’s) in order to enact the user’s desired domain model change.
Conductors are specialized to a particular runtime column, and have intimate knowledge about its capabilities, and thus should have sovereignty about what domain model mutations are permissible. Thus, the control plane must wait for positive responses from all conductors before making a proposed domain model mutation permanent. Domain models really need to be versioned anyway, which makes this feasible to implement: the control plane can save speculative future versions of users’ work in progress without requiring quorum, and only when a user (ideally one with higher permissions than those required to edit!) decides to “make it so” is a two-phase commit required.
It’s basically impossible to coordinate a state transition across a large, complex distributed system, so let’s cheat. Once all conductors have accepted a proposed domain model update, and signaled that they’re ready to go live, the control plane should inject a synthetic message into the data plane to signal the new configuration epoch. Runtimes should only start acting on the new configuration once they observe this message.
]]>Now, we have the latest There was a Scala Improvement Document (Updated link) written by none other than Marc Stiegler, one of the major participants in the E effort. Coincidence?
Tangentially, Marc is also the author of Earthweb — an extremely interesting SF novel that posits a method of solving really big problems (planetary existential risks!) by harnessing the collective wisdom of huge numbers of people using microeconomic incentives.
]]>Scala teams should live by the Spider-Man™ principle—“With great power comes great responsibility.”
Meaning, when you’re using a very flexible and powerful language, be sure that you use that flexibility and power to make things easier to understand, not harder.
]]>To refractor code is to start out with the intention of merely refactoring it (such that it still works the same), but then you find that you can’t achieve your goals without changing the way it works, so you plow on ahead and do it anyway.
]]>Evangelical Christians in America are part of a long tradition of the ignorant taking with one hand the enormous benefits of science and vehemently rejecting with the other the fundamental (ha ha) premises that lead to those benefits.
To which another replied:
If his idiot box fails and keeps him from watching the 700 Club, you’ll never see a fundamentalist try to fix the gadget with prayer or the laying on of hands. He wouldn’t think of it for a millisecond. After the technician’s visit or the trip to Circuit City, he’ll sit back down and watch all the usual denunciations of secularists, oblivious to the inconsistency….
Plastic is a major cluon source.
]]>]]>Linguistics is arguably the most hotly contested property in the academic realm. It is soaked with the blood of poets, theologians, philosophers, philologists, psychologists, biologists, and neurologists, along with whatever blood can be got out of grammarians.
.bq If drug dealers make so much money, why do they still live with their mothers? Which is more dangerous, a gun or a swimming pool? What really caused crime rates to plunge during the past decade? Do real-estate agents have their clients’ best interests at heart? Why do black parents give their children names that may hurt their career prospects? Do schoolteachers cheat to meet high-stakes testing standards? Is sumo wrestling corrupt?
Found at Arts & Letters Daily.
]]>