Inizia con un piccolo prototipo ospitato su un provider cloud (IAAS se sei sicuro delle tue capacità di amministratore di sistema, altrimenti un provider PAAS). Avere un sacco di utenti 'È un bel problema da avere', ma non ottimizzarlo troppo presto, potresti essere sorpreso da dove sono i tuoi punti di dolore della bilancia e dove non lo sono.
Se stai utilizzando lo stack Java, ti consiglio di utilizzare JMeter e alcuni test in stile BDD / ATDD per sondare la tua dimostrazione del concetto per vedere dove potrebbero essere i punti di dolore della bilancia.
Sarei un po 'più flessibile nelle tue scelte tecnologiche, ti stai limitando a ciò che conosci attualmente (e credimi, Hibernate o qualsiasi altro ORM ti rallenterà su larga scala). È Horses per i corsi e alcuni di quelli che hai elencato sopra potrebbero non essere appropriati in fondo alla strada.
È necessario un ingegnere che abbia dimestichezza con architetture distribuite e di messaggistica che conoscono anche i paradigmi di programmazione dello sviluppo multi-thread / concurrent. Sembra anche che tu abbia bisogno di un ingegnere che rally capisca i protocolli web e come progettare una soluzione basata sul web che sia efficiente e ben bilanciata tra client e server.
Questi tipi di ingegneri sono molto difficili da trovare (devi solo guardare Google e altri che combattono per assumerli). Quindi potresti scoprire che dovrai imparare molto da te, ma è tutto parte del divertimento giusto! : D