I'm considering if it would be possible to do something like this:
1) think of message types as "ports" connected to some other actor
2) add some kind of ordering value (like a timestamp) to every message
3) buffer messages and wait until there are buffered messages on each port, then process the one with the lowest timestamp
What might be a good strategy to achieve something like that?