You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Bruno Meseguer (Jira)" <ji...@apache.org> on 2022/11/21 16:03:00 UTC

[jira] [Created] (CAMEL-18740) Automatic encapsulation of outgoing invocations

Bruno Meseguer created CAMEL-18740:
--------------------------------------

             Summary: Automatic encapsulation of outgoing invocations
                 Key: CAMEL-18740
                 URL: https://issues.apache.org/jira/browse/CAMEL-18740
             Project: Camel
          Issue Type: New Feature
          Components: camel-core
            Reporter: Bruno Meseguer


In pursuit of better useability of Camel and future UI tooling, it would be ideal for implementing in Camel an automatic encapsulation of in/out data when invoking endpoints.

The following scenario is a typical processing flow in the enterprise:
1) receive client request
2) call system A
3) call system B
4) call system C
5) compose response (A'+ B'+ C')
6) reply to client

Camel is today 100% capable of letting the developer implement such workflow. If the developer wants to compose a response (step 5), then the sequence of calls above (A/B/C) require to manually keep responses in exchange properties. It requires from the developer to be well familiar with Camel to code the right actions. New users would find it very challenging at first to find the right approach.

Additionally, the current Camel mechanics of handling properties/headers/body do not provide a good enough level of support for UI tooling. A GUI user would still require a good understanding of Camel to accomplish such workflow.

This ticket proposes to provide Camel the ability to automatically handle external calls in such a way that response data is inmediately available for developers to easility compose the response data.

An example Exchange structure that Camel could self-populate is the following:

(config/inputs could be defined at design time, in code or GUI)
(outputs would be resolved at runtime)

Exchange
 - Consumer (1)
    - configuration
    - message (received) or (output)
        - headers
        - body
 - Producer (2)
    - configuration
    - message (sent) or (input)
        - headers
        - body
    - message (response) or (output)
        - headers
        - body
 - Producer (3)
    - configuration
    - message (sent) or (input)
        - headers
        - body
    - message (response) or (output)
        - headers
        - body
 - Producer (4)
    - configuration
    - message (sent) or (input)
        - headers
        - body
    - message (response) or (output)
        - headers
        - body
 - Mapping (5)
    - configuration
    - message (input)
        - headers
        - body
    - message (output)
        - headers
        - body
 - Response to client (automatic)


In the structure above, Camel has automatically created multiple objects inside the Exchange, where each endpoint interaction has been encapsulated. At design time, the Camel route could provide all the metadata (config/inputs) necessary to allow a GUI to easy present to the user information that can be used to configure other inputs.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)