Both ETA and EMA are part of the RTSDK stack. ETA was designed for optimal distribution of messages to achieve the highest performance, highest throughput, and lowest latency. Application developers have complete control over the management of messages within their applications. However, this comes at a cost of complexity, but with the advantage of complete control over message distribution. EMA sits on top of ETA and provides a significantly easier API for rapid development. That being said, in the majority of use cases, EMA is easily suitable for performance. Hope this helps.
You can find more detail about the ETA and EMA differences from the following resources: