This is an important topic that doesn't seem to be discussed at all. The reason why it is important is that the lack of a transaction concept significantly reduces the application scope of didSet
observation and values async sequence. Often, it is necessary to update several values in response to some action, and updating them separately makes no sense.
An observer for didSet might read a value upon the update of another value and get an unexpected result.
A trivial transaction system would be to defer observer calls until the end of the transaction. A more complex variant should take into account that transactions can be nested within each other.
6 Likes