You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Kishan Gajjar <ki...@flipkart.com.INVALID> on 2020/05/14 09:27:07 UTC

Feature requirements on Camel

Hi All,

I have been evaluating Apache Camel for my Orchestration usecases. And have
realised that there are few features which are required to be built in
Camel to satisfy my requirements. I wanted to walk you through those
requirements and understand if it merges with Camel’s roadmap.

Below is the feature list we additionally require:

   1.

   Route Management: Our usecase is to cater various kinds of orchestration
   flows which needs to be executed on their trigger event. In Camel’s term we
   need capability to capture the multiple routes which can be used as a
   centralised place for managing them.
   2.

   Route Versioning: Any new change in the existing Route will be
   rolled-out in the gradual fashion, which means there will be multiple
   versions of a route which needs to be supported and executed in A/B manner.
   3.

   Data exchange control across the processor: Camel exchanges generic data
   across the processors, which can lead to change of data in unexpected
   processor boundaries. To restrict the data access boundary needs a
   type-safe way of data sharing across the processors.
   4.

   Data driven routing. Camel provides the way to route control based on
   static and dynamic across the processors. We need additional capability to
   route processors based on the data dependency.
   5.

   Mapping with Json DSL: Mapping the route definition with JSON DSL. So
   far Camel supports XML and java DSL for route definition.


Let me your thoughts on the requirements, which all make sense to be
added/extended with the Camel. We can work together to contribute.

--
Kishan Gajjar

-- 



*-----------------------------------------------------------------------------------------*


*This email and any files transmitted with it are confidential and 
intended solely for the use of the individual or entity to whom they are 
addressed. If you have received this email in error, please notify the 
system manager. This message contains confidential information and is 
intended only for the individual named. If you are not the named addressee, 
you should not disseminate, distribute or copy this email. Please notify 
the sender immediately by email if you have received this email by mistake 
and delete this email from your system. If you are not the intended 
recipient, you are notified that disclosing, copying, distributing or 
taking any action in reliance on the contents of this information is 
strictly prohibited.*****

 ****

*Any views or opinions presented in this 
email are solely those of the author and do not necessarily represent those 
of the organization. Any information on shares, debentures or similar 
instruments, recommended product pricing, valuations and the like are for 
information purposes only. It is not meant to be an instruction or 
recommendation, as the case may be, to buy or to sell securities, products, 
services nor an offer to buy or sell securities, products or services 
unless specifically stated to be so on behalf of the Flipkart group. 
Employees of the Flipkart group of companies are expressly required not to 
make defamatory statements and not to infringe or authorise any 
infringement of copyright or any other legal right by email communications. 
Any such communication is contrary to organizational policy and outside the 
scope of the employment of the individual concerned. The organization will 
not accept any liability in respect of such communication, and the employee 
responsible will be personally liable for any damages or other liability 
arising.*****

 ****

*Our organization accepts no liability for the 
content of this email, or for the consequences of any actions taken on the 
basis of the information *provided,* unless that information is 
subsequently confirmed in writing. If you are not the intended recipient, 
you are notified that disclosing, copying, distributing or taking any 
action in reliance on the contents of this information is strictly 
prohibited.*


_-----------------------------------------------------------------------------------------_


Re: Feature requirements on Camel

Posted by Kishan Gajjar <ki...@flipkart.com.INVALID>.
Thank you Onder for detailed feedback, I will try to respond to your
queries.

camel can be thought to act (up to a certain point) similar to
some BPM tools. especially bullet 1 and 2 more BPM(ish)
 --- BPM tools are focused more on the business driven execution. Our
requirement is focused on microservice orchestration, that's one of the
reasons we were looking into the Camel approach. Adding more to 1/2 points:
we want a host a platform where different stakeholders define their
orchestration. Where the platform can also be flexible to update/rollout
the definition of the orchestration. That's where we thought of persisting
and managing the route definition.

3 4 sound reasonable. some are already in place depending on how&what you
use in/with camel.
it also IMHO needs a bit more concrete scenarios after a bit of trials
--- Will add a concrete scenario for 3: We want to guard-rail the data
being passed to each processor as per its functional scope. For eg: we have
an Order entity which consist if Items bought, Payment transactions and
Fulfillment details, where a Processor meant to derive Refund amount *should
consume only* Payment transactions so that it cannot modify anything in
Items and Fulfillments.
-- For 4th point: Data driven execution we have need where based on User's
provided data we decide the subsequent flow.

And for the 5th point: our requirement is to cater a Platform which
provides easy on-boarding to any new usecase(Route definition in this
case). Where JSON has better interactions, easy to create dynamically
compared to XML.

--
Kishan Gajjar


On Thu, May 14, 2020 at 8:50 PM Onder SEZGIN <on...@apache.org> wrote:

> Hi,
>
> thanks for the overview look of what you are trying to achieve.
> at the high level, some parts sound achievable with BPM tools.
> of course, camel can be thought to act (up to a certain point) similar to
> some BPM tools. especially bullet 1 and 2 more BPM(ish)
>
> 3 4 sound reasonable. some are already in place depending on how&what you
> use in/with camel.
> it also IMHO needs a bit more concrete scenarios after a bit of trials. 5
> is a choice. personally i don't see a reason of using JSON dsl as JSON is
> used for data/metadata representation.
> but if there is an effort, community would consider i believe, but unless
> there is a usecase, hard to find a reason to back it up implementing it.
>
> Cheers
> Onder
>
> On Thu, May 14, 2020 at 1:54 PM Kishan Gajjar
> <ki...@flipkart.com.invalid> wrote:
>
> > Hi All,
> >
> > I have been evaluating Apache Camel for my Orchestration usecases. And
> have
> > realised that there are few features which are required to be built in
> > Camel to satisfy my requirements. I wanted to walk you through those
> > requirements and understand if it merges with Camel’s roadmap.
> >
> > Below is the feature list we additionally require:
> >
> >    1.
> >
> >    Route Management: Our usecase is to cater various kinds of
> orchestration
> >    flows which needs to be executed on their trigger event. In Camel’s
> > term we
> >    need capability to capture the multiple routes which can be used as a
> >    centralised place for managing them.
> >    2.
> >
> >    Route Versioning: Any new change in the existing Route will be
> >    rolled-out in the gradual fashion, which means there will be multiple
> >    versions of a route which needs to be supported and executed in A/B
> > manner.
> >    3.
> >
> >    Data exchange control across the processor: Camel exchanges generic
> data
> >    across the processors, which can lead to change of data in unexpected
> >    processor boundaries. To restrict the data access boundary needs a
> >    type-safe way of data sharing across the processors.
> >    4.
> >
> >    Data driven routing. Camel provides the way to route control based on
> >    static and dynamic across the processors. We need additional
> capability
> > to
> >    route processors based on the data dependency.
> >    5.
> >
> >    Mapping with Json DSL: Mapping the route definition with JSON DSL. So
> >    far Camel supports XML and java DSL for route definition.
> >
> >
> > Let me your thoughts on the requirements, which all make sense to be
> > added/extended with the Camel. We can work together to contribute.
> >
> > --
> > Kishan Gajjar
> >
> > --
> >
> >
> >
> >
> >
> *-----------------------------------------------------------------------------------------*
> >
> >
> > *This email and any files transmitted with it are confidential and
> > intended solely for the use of the individual or entity to whom they are
> > addressed. If you have received this email in error, please notify the
> > system manager. This message contains confidential information and is
> > intended only for the individual named. If you are not the named
> > addressee,
> > you should not disseminate, distribute or copy this email. Please notify
> > the sender immediately by email if you have received this email by
> mistake
> > and delete this email from your system. If you are not the intended
> > recipient, you are notified that disclosing, copying, distributing or
> > taking any action in reliance on the contents of this information is
> > strictly prohibited.*****
> >
> >  ****
> >
> > *Any views or opinions presented in this
> > email are solely those of the author and do not necessarily represent
> > those
> > of the organization. Any information on shares, debentures or similar
> > instruments, recommended product pricing, valuations and the like are for
> > information purposes only. It is not meant to be an instruction or
> > recommendation, as the case may be, to buy or to sell securities,
> > products,
> > services nor an offer to buy or sell securities, products or services
> > unless specifically stated to be so on behalf of the Flipkart group.
> > Employees of the Flipkart group of companies are expressly required not
> to
> > make defamatory statements and not to infringe or authorise any
> > infringement of copyright or any other legal right by email
> > communications.
> > Any such communication is contrary to organizational policy and outside
> > the
> > scope of the employment of the individual concerned. The organization
> will
> > not accept any liability in respect of such communication, and the
> > employee
> > responsible will be personally liable for any damages or other liability
> > arising.*****
> >
> >  ****
> >
> > *Our organization accepts no liability for the
> > content of this email, or for the consequences of any actions taken on
> the
> > basis of the information *provided,* unless that information is
> > subsequently confirmed in writing. If you are not the intended recipient,
> > you are notified that disclosing, copying, distributing or taking any
> > action in reliance on the contents of this information is strictly
> > prohibited.*
> >
> >
> >
> >
> _-----------------------------------------------------------------------------------------_
> >
> >
>

-- 



*-----------------------------------------------------------------------------------------*


*This email and any files transmitted with it are confidential and 
intended solely for the use of the individual or entity to whom they are 
addressed. If you have received this email in error, please notify the 
system manager. This message contains confidential information and is 
intended only for the individual named. If you are not the named addressee, 
you should not disseminate, distribute or copy this email. Please notify 
the sender immediately by email if you have received this email by mistake 
and delete this email from your system. If you are not the intended 
recipient, you are notified that disclosing, copying, distributing or 
taking any action in reliance on the contents of this information is 
strictly prohibited.*****

 ****

*Any views or opinions presented in this 
email are solely those of the author and do not necessarily represent those 
of the organization. Any information on shares, debentures or similar 
instruments, recommended product pricing, valuations and the like are for 
information purposes only. It is not meant to be an instruction or 
recommendation, as the case may be, to buy or to sell securities, products, 
services nor an offer to buy or sell securities, products or services 
unless specifically stated to be so on behalf of the Flipkart group. 
Employees of the Flipkart group of companies are expressly required not to 
make defamatory statements and not to infringe or authorise any 
infringement of copyright or any other legal right by email communications. 
Any such communication is contrary to organizational policy and outside the 
scope of the employment of the individual concerned. The organization will 
not accept any liability in respect of such communication, and the employee 
responsible will be personally liable for any damages or other liability 
arising.*****

 ****

*Our organization accepts no liability for the 
content of this email, or for the consequences of any actions taken on the 
basis of the information *provided,* unless that information is 
subsequently confirmed in writing. If you are not the intended recipient, 
you are notified that disclosing, copying, distributing or taking any 
action in reliance on the contents of this information is strictly 
prohibited.*


_-----------------------------------------------------------------------------------------_


Re: Feature requirements on Camel

Posted by Onder SEZGIN <on...@apache.org>.
Hi,

thanks for the overview look of what you are trying to achieve.
at the high level, some parts sound achievable with BPM tools.
of course, camel can be thought to act (up to a certain point) similar to
some BPM tools. especially bullet 1 and 2 more BPM(ish)

3 4 sound reasonable. some are already in place depending on how&what you
use in/with camel.
it also IMHO needs a bit more concrete scenarios after a bit of trials. 5
is a choice. personally i don't see a reason of using JSON dsl as JSON is
used for data/metadata representation.
but if there is an effort, community would consider i believe, but unless
there is a usecase, hard to find a reason to back it up implementing it.

Cheers
Onder

On Thu, May 14, 2020 at 1:54 PM Kishan Gajjar
<ki...@flipkart.com.invalid> wrote:

> Hi All,
>
> I have been evaluating Apache Camel for my Orchestration usecases. And have
> realised that there are few features which are required to be built in
> Camel to satisfy my requirements. I wanted to walk you through those
> requirements and understand if it merges with Camel’s roadmap.
>
> Below is the feature list we additionally require:
>
>    1.
>
>    Route Management: Our usecase is to cater various kinds of orchestration
>    flows which needs to be executed on their trigger event. In Camel’s
> term we
>    need capability to capture the multiple routes which can be used as a
>    centralised place for managing them.
>    2.
>
>    Route Versioning: Any new change in the existing Route will be
>    rolled-out in the gradual fashion, which means there will be multiple
>    versions of a route which needs to be supported and executed in A/B
> manner.
>    3.
>
>    Data exchange control across the processor: Camel exchanges generic data
>    across the processors, which can lead to change of data in unexpected
>    processor boundaries. To restrict the data access boundary needs a
>    type-safe way of data sharing across the processors.
>    4.
>
>    Data driven routing. Camel provides the way to route control based on
>    static and dynamic across the processors. We need additional capability
> to
>    route processors based on the data dependency.
>    5.
>
>    Mapping with Json DSL: Mapping the route definition with JSON DSL. So
>    far Camel supports XML and java DSL for route definition.
>
>
> Let me your thoughts on the requirements, which all make sense to be
> added/extended with the Camel. We can work together to contribute.
>
> --
> Kishan Gajjar
>
> --
>
>
>
>
> *-----------------------------------------------------------------------------------------*
>
>
> *This email and any files transmitted with it are confidential and
> intended solely for the use of the individual or entity to whom they are
> addressed. If you have received this email in error, please notify the
> system manager. This message contains confidential information and is
> intended only for the individual named. If you are not the named
> addressee,
> you should not disseminate, distribute or copy this email. Please notify
> the sender immediately by email if you have received this email by mistake
> and delete this email from your system. If you are not the intended
> recipient, you are notified that disclosing, copying, distributing or
> taking any action in reliance on the contents of this information is
> strictly prohibited.*****
>
>  ****
>
> *Any views or opinions presented in this
> email are solely those of the author and do not necessarily represent
> those
> of the organization. Any information on shares, debentures or similar
> instruments, recommended product pricing, valuations and the like are for
> information purposes only. It is not meant to be an instruction or
> recommendation, as the case may be, to buy or to sell securities,
> products,
> services nor an offer to buy or sell securities, products or services
> unless specifically stated to be so on behalf of the Flipkart group.
> Employees of the Flipkart group of companies are expressly required not to
> make defamatory statements and not to infringe or authorise any
> infringement of copyright or any other legal right by email
> communications.
> Any such communication is contrary to organizational policy and outside
> the
> scope of the employment of the individual concerned. The organization will
> not accept any liability in respect of such communication, and the
> employee
> responsible will be personally liable for any damages or other liability
> arising.*****
>
>  ****
>
> *Our organization accepts no liability for the
> content of this email, or for the consequences of any actions taken on the
> basis of the information *provided,* unless that information is
> subsequently confirmed in writing. If you are not the intended recipient,
> you are notified that disclosing, copying, distributing or taking any
> action in reliance on the contents of this information is strictly
> prohibited.*
>
>
>
> _-----------------------------------------------------------------------------------------_
>
>

Fwd: Feature requirements on Camel

Posted by Kishan Gajjar <ki...@flipkart.com.INVALID>.
Hi All,

I have been evaluating Apache Camel for my Orchestration usecases. And have
realised that there are few features which are required to be built in
Camel to satisfy my requirements. I wanted to walk you through those
requirements and understand if it merges with Camel’s roadmap.

Below is the feature list we additionally require:

   1.

   Route Management: Our usecase is to cater various kinds of orchestration
   flows which needs to be executed on their trigger event. In Camel’s term we
   need capability to capture the multiple routes which can be used as a
   centralised place for managing them.
   2.

   Route Versioning: Any new change in the existing Route will be
   rolled-out in the gradual fashion, which means there will be multiple
   versions of a route which needs to be supported and executed in A/B manner.
   3.

   Data exchange control across the processor: Camel exchanges generic data
   across the processors, which can lead to change of data in unexpected
   processor boundaries. To restrict the data access boundary needs a
   type-safe way of data sharing across the processors.
   4.

   Data driven routing. Camel provides the way to route control based on
   static and dynamic across the processors. We need additional capability to
   route processors based on the data dependency.
   5.

   Mapping with Json DSL: Mapping the route definition with JSON DSL. So
   far Camel supports XML and java DSL for route definition.


Let me your thoughts on the requirements, which all make sense to be
added/extended with the Camel. We can work together to contribute.

--
Kishan Gajjar

-- 



*-----------------------------------------------------------------------------------------*


*This email and any files transmitted with it are confidential and 
intended solely for the use of the individual or entity to whom they are 
addressed. If you have received this email in error, please notify the 
system manager. This message contains confidential information and is 
intended only for the individual named. If you are not the named addressee, 
you should not disseminate, distribute or copy this email. Please notify 
the sender immediately by email if you have received this email by mistake 
and delete this email from your system. If you are not the intended 
recipient, you are notified that disclosing, copying, distributing or 
taking any action in reliance on the contents of this information is 
strictly prohibited.*****

 ****

*Any views or opinions presented in this 
email are solely those of the author and do not necessarily represent those 
of the organization. Any information on shares, debentures or similar 
instruments, recommended product pricing, valuations and the like are for 
information purposes only. It is not meant to be an instruction or 
recommendation, as the case may be, to buy or to sell securities, products, 
services nor an offer to buy or sell securities, products or services 
unless specifically stated to be so on behalf of the Flipkart group. 
Employees of the Flipkart group of companies are expressly required not to 
make defamatory statements and not to infringe or authorise any 
infringement of copyright or any other legal right by email communications. 
Any such communication is contrary to organizational policy and outside the 
scope of the employment of the individual concerned. The organization will 
not accept any liability in respect of such communication, and the employee 
responsible will be personally liable for any damages or other liability 
arising.*****

 ****

*Our organization accepts no liability for the 
content of this email, or for the consequences of any actions taken on the 
basis of the information *provided,* unless that information is 
subsequently confirmed in writing. If you are not the intended recipient, 
you are notified that disclosing, copying, distributing or taking any 
action in reliance on the contents of this information is strictly 
prohibited.*


_-----------------------------------------------------------------------------------------_


Re: Feature requirements on Camel

Posted by Zoran Regvart <zo...@regvart.com>.
Hi Kishan,
some thoughts inline

On Thu, May 14, 2020 at 12:58 PM Kishan Gajjar
<ki...@flipkart.com.invalid> wrote:
>    Route Management: Our usecase is to cater various kinds of orchestration
>    flows which needs to be executed on their trigger event. In Camel’s term we
>    need capability to capture the multiple routes which can be used as a
>    centralised place for managing them.

Are you aware of Hawt.io (https://hawt.io/) it's often used to provide
graphical UI to manage Camel. About your last remarks, I'm not exactly
clear what you mean by "capture", if you mean ability to run multiple
routes within one deployment -- you can have as many as you need
routes in a single Camel context, there are EIPs for routing and
splitting the payload if you need to pass them to other routes.

>    Route Versioning: Any new change in the existing Route will be
>    rolled-out in the gradual fashion, which means there will be multiple
>    versions of a route which needs to be supported and executed in A/B manner.

Your best option here is to version the artefact you deploy, if that's
a Camel route definition have two of them with different IDs. Naming
conventions come in handy.

>    Data exchange control across the processor: Camel exchanges generic data
>    across the processors, which can lead to change of data in unexpected
>    processor boundaries. To restrict the data access boundary needs a
>    type-safe way of data sharing across the processors.

If you need strong typing define a Java domain model defined and put
only objects from that domain model into the message body. If using a
Java model is not what you want you can enforce schema checks for many
common data formats.

>    Data driven routing. Camel provides the way to route control based on
>    static and dynamic across the processors. We need additional capability to
>    route processors based on the data dependency.

I'm not really clear on what you mean with data dependency, but have a
look at content based router EIP and see if that fits your use case.

>    Mapping with Json DSL: Mapping the route definition with JSON DSL. So
>    far Camel supports XML and java DSL for route definition.

I think there's an effort for a YAML based DSL, not sure if either
JSON or YAML is expressive enough to achieve fidelity you can have
with the XML and Java DSLs, the effort needed to put another DSL on
par with XML and Java DSLs is substantial and I (personally) don't see
much benefit in having one.

zoran
-- 
Zoran Regvart