You don't need to do it synchronously, especially if you are willing to deal with an index that would be eventually consistent with the storage. If you can accept that, then you could actually use the existing cassandra-triggers module to implement the bridge between Cassandra and ES.
Implement the Triggers interface. In your implementation, simply POST to ES to reflect the respective mutation. Configure your trigger against the appropriate Column Family and you should be good-to-go.
I only suggested javascript, because implementing a Trigger right now is not as straightforward as we would like since it requires implementing a Java interface and dropping the resulting jar onto the Cassandra classpath.
If you do go ahead with the ES bridge, definitely let us know.
RE: the document retrieval
It depends how you implement the bridge between Cassandar and ES. If you put the document in ES, then you could pull it directly from ES. If you don't, then you'll first need to query ES for the docs, then perform the corresponding lookups in Cassandra.
Hope that helps. Like I said, if we get to the javascript-based triggers, we might go ahead and implement the ES bridge because it will be dead simple.
-brian