Adapted from https://medium.com/better-programming/data-engineering-101-from-batch-processing-to-streaming-54f8c0da66fb