Your question is very broad, so is my answer.
- the concept behind the event processor is that it processes one event at a time in a single thread.
- the issue is that you must decompose you system into asynchronous events.
- pitfalls: it may be much more complicated than you need unless you really need millions of events per second. (And this is pretty rare out side HFT)