At the end of this chapter, you should have a clear understanding of various design considerations for streaming applications. Our goal with this chapter was to ensure that you have understood various complex aspects of a streaming application design.
Although the aspects may vary from project to project, based on our industry experience, we feel that these are some of the common aspects that you will end up considering in any streaming application design. For example, you cannot design any streaming application without defining SLAs around latency and throughput.
You can use these principals irrespective of your choice of technology for stream processing--be it micro-batch Spark streaming applications or real-time Storm/Heron stream processing applications. They are technology agnostic. However, the way they can be achieved varies from technology to technology. With this...