I have found you need a queue in front of ES for better write reliability, more so than other DBs. The read/aggregation performance is fantastic though.
Also, you should know a little about GC tuning too
Also, you should know a little about GC tuning too
Scaling writes just meant changing that service's implimentation. We wrote them to Mongo and synched them to ES. There are much better ways to do that, but ES would be overloaded w/ just 500 writes a second so it didn't matter.
This way your system becomes a sync, and your system above is not affected if ES becomes slow writing or goes down for a reason. Your events will remain stored in the queue waiting to be processed.