We used to use the java driver 3.x and I'm migrating to 4.x, I really like the new API btw.
Something that has confused me though is that in a @Dao I can @Select a PagingIterable<Foo> but not a Stream<Foo>. This seems a bit strange because PagingIterable exposes a spliterator so I can convert it into a stream with StreamSupport.stream(page.spliterator(), false). If its this easy to implement why doesn't the cassandra driver support returning streams, I feel like I might be missing something subtle.