type Service interface {
// Shutdown initiates shutdown Shutdown()
// RegisterCallback registers functions to be called on shutdown and before// the shutdown channel is closed. A callback error will propagate to the// context error
RegisterCallback(func(context.Context) error)
}
Service is used to facilitate shutdown by through callback
registration and shutdown initiation
WithShutdown returns a context which is similar to a cancel context, but
with callbacks which can propagate to the context error. Unlike a cancel
context, the shutdown context cannot be canceled from the parent context.
However, future child contexes will be canceled upon shutdown.