Hi @aftab
I noticed you asked a similar question for migrating from RFA 7.7 to RFA 8.x
Assuming you are using the legacy MarketData/SSLED interface with RFA 7.7, as explained in my other post, moving from RFA 7.7 to EMA will be considerably less effort than moving to the RFA 8.x OMM interface.
If you compare the legacy RFA 7.7 consumer example RFASTTicker (C++) or the most basic MDSubDemo (Java) with a similar EMA consumer example such as 200_MP_Streaming - you will note that the EMA examples use a fraction of the code to achieve the same functionality compared their RFA equivalents.
This is because EMA is a high-level ease of use layer API which defaults much of the most commonly performed operations e.g.
// C++ OmmConsumer consumer( OmmConsumerConfig().host( "ads1:14002" ).username( "user" ) );
OR
// Java OmmConsumerConfig config = EmaFactory.createOmmConsumerConfig(); consumer = EmaFactory.createOmmConsumer(config.host("ads1:14002").username("lpcuser2"));
Executing the above lines of code performs the following (behind the scenes)
Achieving the above with the RFA OMM interface would require 100+ lines of code.
Hi @aftab
I should also like to highlight other key benefits of EMA over RFA:
Future-proofing - longer-term OS and Compiler support for new APIs, older APIs will be deprecated (RFA is 19 years old, SFC/SSL even older).
EMA is an Open Source API
Improved performance:
Newer features
Views (field filtering), Pause & Resume data streams, Tunnelling, Service Discovery, Domains, Private Streams, Horizontal Scaling, Batch requests
Easier to learn for existing & new developers
Richer data payloads - Increased flexibility & efficiency of data distribution + processing, Binary encoded format