Hi,
In short, it depends on your data. Some data are really well suited for JanusGraph and some data isn't.
JanusGraph is a graph database layer on top of other databases. Thus, you should understand your data to know which data store you should use (I am suggesting to use CAP theorem).
Cassandra consistency is configurable but there are no transaction isolations.
ElasticSearch consistency depends on index refreshing configuration and indexing time.
If your entities are added / updated rarely, you may configure your Cassandra for write consistency ALL, use ElasticSearch refresh API to ensure all your data is consistent, thus you "may" use read consistency level - ONE. Write QUORUM and read QUORUM guarantees that your responses are consistent but you should check tradeoffs with your own project.
JanusGraph is very well suited for data with many relations. I guess, if your project is IoT, then your data will be very connected, and thus, your data is suited well in JanusGraph.
Also, I find ScyllaDB has a better overall performance then Cassandra thus may be a good decision for real time data but you should check it with your own scenarios as ScyllaDB uses more CPU time (to reduce latency) then Cassandra.
That said, JanusGraph is well suited for real time as well as analytics if well configured (storage, index storage and JanusGraph itself).
As a small suggestion if you are using JVM based language and your real-time traversals are not very complex, I would recommend to use JanusGraph in embedded mode (
https://docs.janusgraph.org/basics/configuration/#janusgraph-embedded) as it will enable you to use datastax cassandra driver queries routing optimizations and eliminates an additional hop. That said, you your queries are complex enough, it may be better to use JanusGraph servers which are located closer to storage servers. Again, it should be checked for specific scenarios.
The above information doesn't answer your questions precisely but maybe it may help somehow.