3 ms·
Hints for Computer System Design
- angersock 13y agoA very fun snippet from the linked article, giving a clean explanation of the benefits of functional programming, idempotent operations, and logged data storage: "To use the technique, record every update to an object as a log entry, consisting of the name of the update procedure and its arguments. The procedure must be functional: when applied to the same arguments it must always have the same effect. In other words, there is no state outside the arguments that affects the operation of the procedure. This means that the (procedure call specified by the) log entry can be re-executed later, and if the object being updated is in the same state as when the update was first done, it will end up in the same state as after the update was first done. By induction, this means that a sequence of logentries can be re-executed, starting with the same objects, and produce the same objects that were produced in the original execution."