Questa non è una soluzione completa, ma potresti voler esaminare OrientDB come parte del tuo stack. Orient è un server di database Graph-Document scritto interamente in Java.
Nei database dei grafi, le relazioni sono considerate cittadini di prima classe e quindi l'attraversamento di tali relazioni può essere fatto abbastanza rapidamente. Orient è anche un database di documenti che ti consentirebbe il tipo di architettura priva di schemi che ti sembra necessario. Il vero motivo per cui suggerisco Oriente, tuttavia, è a causa della sua estensibilità. Supporta lo streaming tramite socket e l'intero database può essere incorporato in un'altra applicazione. Infine, può essere ridimensionato in modo efficiente e / o può funzionare interamente attraverso la memoria. Quindi, con alcune competenze Java, puoi effettivamente eseguire le tue query preimpostate sul database in memoria.
Stiamo facendo qualcosa di simile. Nel creare un'app / sito per la collaborazione nella ricerca nelle scienze sociali, ci siamo trovati con modelli di dati immensamente complessi. Abbiamo finito per scrivere diverse query usando Gremlin Traversal Language (un sottoinsieme di Groovy, che è, ovviamente, Java al centro), e quindi esponendo tali query attraverso il server di connessione binaria di OrientDB. Pertanto, il client apre un socket TCP, invia un breve messaggio binario e la query viene eseguita in Java direttamente sul database in memoria.
OrientDB supporta anche la scrittura di query di funzioni in Javascript e puoi utilizzare Node.js per interagire direttamente con un'istanza Orient.
Per qualcosa di queste dimensioni, vorrei usare Orient insieme a Hadoop o qualcosa del genere. Puoi anche usare Orient insieme a esper.
Considerare: un'introduzione all'orientamento: http://www.sitepoint.com/a-look-at-orientdb-the-graph-document-nosql/
Query complesse in tempo reale: http://www.gft-blog.com/business-trends/leveraging-real-time-scoring-through-bigdata-to-detect-insurance-fraud/
Una discussione sulle opzioni di streaming con Java e Orient: https://github.com/orientechnologies/orientdb/issues/1227