func New(opts ...Opt) *Acks {
	a := &Acks{
		failOnFailedAck: false,
		log:             log.NewNopLogger(),
	}
	for _, o := range opts {
		o(a)
	}
	return a
}
Automatically acknowledges all pulled update requests.
FrameworkId is set from subscribe call during pull.
By default only logs failed acks and returns pulled update message
package ack
import (
	"context"
	"sync"
	"github.com/ondrej-smola/mesos-go-http/lib"
	"github.com/ondrej-smola/mesos-go-http/lib/flow"
	"github.com/ondrej-smola/mesos-go-http/lib/log"
	"github.com/ondrej-smola/mesos-go-http/lib/scheduler"
	"github.com/pkg/errors"
)
type (
	Opt func(c *Acks)
	Acks struct {
		via             flow.Flow
		frameworkId     string
		failOnFailedAck bool
		log             log.Logger
		sync.RWMutex
	}
)
func WithLogger(l log.Logger) Opt {
	return func(c *Acks) {
		c.log = l
	}
}
func WithFailOnFailedAck() Opt {
	return func(c *Acks) {
		c.failOnFailedAck = true
	}
}
func Blueprint(opts ...Opt) flow.StageBlueprint {
	return flow.StageBlueprintFunc(func(matOpts ...flow.MatOpt) flow.Stage {
		cfg := flow.MatOpts(matOpts).Config()
		if cfg.Log != nil {
			opts = append(opts, WithLogger(log.With(cfg.Log, "src", "implicit_ack_stage")))
		}
		return New(opts...)
	})
}