in src/it/scala/com/gu/kinesis/ScalaKinesisProducer.scala [82:93]
def shutdown(): Future[Unit] = shutdownOnce
private lazy val shutdownOnce: Future[Unit] = {
val allFlushedFuture = flushAll()
val shutdownPromise = Promise[Unit]
allFlushedFuture.onComplete { _ =>
shutdownPromise.completeWith(destroyProducer())
}
val combinedFuture = allFlushedFuture.zip(shutdownPromise.future).map(_ => ())
combinedFuture.onComplete(_ => stats.reportShutdown(streamId))
combinedFuture
}