:DNSClient :D2UpdateMgr Sequence depicting a simple state model which performs a single update. As part of Update Manager's sweep() between events it creates and starts the transaction runStateModel() Iterates through states until DONE_ST is reached :NameChangeTransaction At some point later, DNSClient invokes callback when IO completes runStateModel() Iterates through states until an update is initiated doUpdate() setState(READY_ST) runStateModel(START_TRANSACTION_EVT) startTransaction() (getStateHandler())() operator ()() initStateHandlerMap() setDnsUpdateStatus() runStateModel(IO_COMPLETED_EVT) NameChangeTransaction() (getStateHandler)() setNextEvent(NOP_EVT) setState(DONE_ST) setNextEvent(NOP_EVT)