Integration bus: E-Router

E-Router integration bus lies at core of every integration process in Eurochem. It provides a connectivity platform for every IT system in a corporate landscape, be it an Oracle ERP system or an web-application developed in-house, to each other and to partner systems outside Eurochem Group. E-Router supports RPC calls using SOAP and XMLRPC, provides access to RESTful web-services and enables AS2-based electronic document interchange. It also provides interface to access to the data stored in RDBMS such like Oracle or MySQL, and allows invocation of progam blocks stored as procedures in these RDBMS.

E-Router architecture allows plug-in extensions, enabling fast implementation of new integration scenarios. For instance, a plugin for Protobuf message serialization was developed for integration scenario with legally-recognized russian EDI system Diadoc in less than a week time. 

The distinguishing feature of E-Router is simultaneous support of multiple integration landscapes. Transfer of integration scenario from development into QA environment and further deployment to production systems requires no changes to the integration code. This is possible through the use of symbolic names (aliases) to designate the integration target system; the actual mapping of these symbolic names for a service customer to a specific system is performed by E-router.

At the moment we are testing operation in geographically-distributed cluster to ensure high availiability of EuroChem IT services within the group and for external partners when russian law on ensuring safety of russian segment of Internet by shutting down cross-border links comes into action. Currently, the average load per node is 50 requests/sec, and 350 requests/sec were observed during peak hours with no loss to service quality.

Technology used: Ruby/EventMachine (main process), Ruby /Rails (admin app), Python (auxillary ETL module).
In production since 2011.