You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently Metafora statemachine commands are like UNIX signals, they can be ignored by user code entirely.
It would be preferable for commands to persist until user code at least acknowledges their receipt.
Details
The current statemachine.Command interface only has a Receive() method. Once a Command is received, it is forgotten. If user code exits before receiving the command or an unexpected shutdown occurs, the command will have never been seen by user code.
Implementation
Make Receive() *statemachine.Message become Receive() statemachine.Command
Create interface:
typeCommandinterface {
Message() MessageAck()
}
Where until Ack() is called, subsequent calls to Receive() should return the same Command
The text was updated successfully, but these errors were encountered:
Are the commands saved in etcd? So the idea is that the command is there until the code calls Ack, Ack then becomes the way a command is actually deleted?
Overview
Currently Metafora statemachine commands are like UNIX signals, they can be ignored by user code entirely.
It would be preferable for commands to persist until user code at least acknowledges their receipt.
Details
The current statemachine.Command interface only has a
Receive()
method. Once a Command is received, it is forgotten. If user code exits before receiving the command or an unexpected shutdown occurs, the command will have never been seen by user code.Implementation
Receive() *statemachine.Message
becomeReceive() statemachine.Command
Where until
Ack()
is called, subsequent calls toReceive()
should return the sameCommand
The text was updated successfully, but these errors were encountered: