I'm working on something similar. So far I like Apache NiFi for ingestion and Apache Flink for processing. Storage choice(s) are plenty and IMHO determined by the use-case and available expertise.
Indeed storage choices are plenty. That said, if you want to be able to do the kind of optimizations that are described in the article, then the set of candidates gets a bit smaller.
I'm actually very, very curious to hear more about that. Both NIFI and Flink are niche choices currently... care to share more, maybe in private?