Hi, i have some problems to understand how routes work and when i have to use it. I have a system where the customer can do a registration. Multiply system must now inform, that a new customer has been registred. So i'm trying to set up an ESB (currently Talend Open Studio ESB 5.5). The "registration system" should call a REST service on the ESB and the ESB should distribute the incoming information to many other systems (over services, files, etc.). Thats the point where "routes" come in, right? There is one leading system which returns some information which should returned to the "registration system".
What is the best way to do that? In a 'job' i can create a 'tRESTRequest' and a 'tRESTResponse' and maybe with 'tReplicate' i can notify all systems. But this is maybe the wrong way. Maybe the solution looks like this: A job with 'tRESTRequest' notify the leading system and return with the 'tRESTResponse' the response of this leading system. And over "some magic" one or many routes are activated and inform all other systems (over a job? because in "mediation" i have not all needed components). But when i call a job inside a route, what are the advantages of a route? Why shoudln't i use 'tReplicate' in a single job?
The "registration system" should call a REST service on the ESB and the ESB should distribute the incoming information to many other systems (over services, files, etc.). Thats the point where "routes" come in, right?
I don't understand your request well, there already has a registration system or you want to use Talend ESB product to build this registration system by creating a rest webservice? Can you please explain this part a little? Shong
---------------------------------------------------------- Talend | Data Agility for Modern Business
Currently we have a system (system A) with a registration form. After a registration one or many (depends) systems must be inform about that registration. One of this other systems returns some information which must be stored in 'system A'. In the middle we want to use Talend. The expected workflow: 1) A new user registrate himself on 'system A' 2) 'system A' now calles talend ESB (over a REST Service?) 3) talend ESB notify 'system B' about the registration (talend should call some webservices on 'system B') 4) maybe talend ESB must notify some other system ('system C', 'system D' ...) this may depends on configuration or some user information. 5) talend ESB send the response from 'system B' to 'system A' (as response of the REST Service?) In a future step we try to build a queue in talend ESB. In case that some system are not reachable, talend should try to inform them later. But this is a future step ...
My question is now: Whats the best way to do it? And in which case can i use 'routes'?
I think i must create a job with 'tRESTRequest' (step 2). After that i should call 'system B' (step 3) and send that response with 'tRESTResponse' back to 'system A' (step 5). But what is with the other systems ('system C', 'system D' ...)? Must i define 1 or n routes for every system (what is the best practice)? Must i work with 'cJSMConnectionFactory' and 'cJMS' inside a route?
I'm not very conform with ESB, so excuse me my questions about routes.
Was there ever an answer to this as I have the same question. It could be a fundamental misunderstanding of how Talend ESB is designed to work but I would think this is a pretty standard use case. Gerry
Say you have following case: There is front-end system (FE) with registration form and several back-end systems (BE1, BE2, etc). One of these back-end systems is user directory (UD), it performs actual registration of a user. So data is collected on FE and then sould pass to: 1. UD which then will return an answer 2. Other BE systems How you may implement this? There is no one solution, but I recommend following: You create one route that will recieve initial request from FE and will do two things: 1. It will put request to message topic 2. It will call UD, read responce and pass it back Other BE systems just subsribes to message topic and will be notified when new message will be posted in it. Please note in real cases you usually must notify all BE systems only if UD sent positive response.
If it's sufficient you can use a job with REST endpoint like in Talend Data Integration. If you need camel routes (for a more complex routing) you can use the route with cMessagingEndpoint and integrate jobs for the communication with foreign systems as described here: https://www.youtube.com/watch?v=VJsaxKLPo2g?content-lang=en