A better way will be to use annotations or marker interfaces that denotes the nature of the command (async. vs sync.). And actually in retrospective, you can do away with enums and use annotations (with a value) as the event type.