Here's a class that does everything in RollupEventEmitter and RollupEmissionWork with a little less back-and-forth and statics.

```java
    private static class ExampleRollupEmitter extends Emitter {
        private final ThreadPoolExecutor threadPool;
        
        private static final ExampleRollupEmitter instance = new ExampleRollupEmitter();
        
        private ExampleRollupEmitter() {
            threadPool = new ThreadPoolBuilder().build();
        }
        
        public static ExampleRollupEmitter getInstance() { return instance; };

        @Override
        public Emitter emit(final String event, final Object... args) {
            threadPool.submit(new Runnable() {
                @Override
                public void run() {
                    ExampleRollupEmitter.super.emit(event, args);
                }
            });
            
            return this;
        }
        
        // todo: you could have a few methods that expose attributes of the threadpool.
    }
```