terminate() {
        this.isTerminationStarted = true;
        this.checkShutdown();

        return this.isTerminated
            ? Promise.resolve()
            : new Promise(resolve => this.on('terminated', resolve));
    }
Starts the process of terminating this instance.

@returns {Promise} - resolved when the instance is terminated.