class SagaMessageStream implements MessageStream {

    @Override
    public void close() {
        if (executor instanceof ExecutorService) {
            shutDownExecutor((ExecutorService) executor);
        }

        AutoCloseables.closeQuietly(environment);
        AutoCloseables.closeQuietly(invoker);
    }

    @Inject public  SagaMessageStream(
            final HandlerInvoker invoker,
            final SagaEnvironment environment,
            final Executor executor);

}