
The controller keeps the state of the transaction corresponding to the use case, and provides the operations that can be done to modify that state (a good opportunity to implement the state pattern). It can also validate that the operations are executed in the correct order, if necessary (cannot enter an item if the sale was already paid).
So, in the case that we decide to implement this use case using interactors, will only one interactor be needed, or one per operation? (for example, one to start the transaction, another to enter an item, and so on) Where do we keep the state of the transaction? And should we separate that state from the operations that modifies it?