See other comment about Spark and frameworks. If you are just starting out with stream processing I would highly recommend using the best-of-breed frameworks. Frameworks provide abstractions that let you focus on solving your domain problems quickly, you don't want to have to worry about the plumbing until you've solved those.