The SOA concept is easy to grasp, but I am not familiar at all with enterprise service integation architectures and technologies like BPEL and Apache Camel.
I know that BPEL helps orchestrating services, and that Camel is an implementation of Enterprise Integration Patterns. I am currently reading the well known Enterprise Integration Patterns book.
But the border between EIP and orchestration seems very thin for me. In my mind, Camel also orchestrates services in its own way. Moreover, Camel provides lots of connectors so different protocols can be easily used.
Is Camel better than BPEL?
Or is it possible to do things with BPEL that you cannot do with Camel?
Which ones?
About what I read, it seems Camel is better than BPEL to orchestrate REST services: is it true?
Kafka for event streaming and Camel for ETLCamel is used in a business domain for application integration. Kafka is the central nervous system between the Camel integration application and many other applications.
Integrating applications together: Camel is intended for situations where you need to move data between different protocols and applications (like files, emails, APIs or web apps). You can use Apache Camel when you want to move data between any one of the apps and protocols supported by its 200+ components.
Apache Camel ™ is a versatile open-source integration framework based on known Enterprise Integration Patterns. Camel empowers you to define routing and mediation rules in a variety of domain-specific languages (DSL, such as Java, XML, Groovy, Kotlin, and YAML).
We have been trying to answer this question many many times in my previous job. Our products were TIBCO BusinessWorks (something like Apache Camel) and TIBCO iProcess (something like Apache ServiceMix).
And we came to simple conclusion:
This not always applicable and these two worlds do not have strong boundaries, but you can simplify that. And one more note - you can do BPEL-like processes with integration products and vice versa. It's just a matter of approach. But if you stick with these rules, you should be able to differentiate between the two. There are many more aspects, but this is I think the most important one.
Bpel is more of a language/standard for bpm and service orchestration implementations. Its a bit like apple and pears, since camel is an integration engine implementation. You probably want to look more at bpel (or bpmn) for high level business automation (like inplement a purchase flow with multiple systems, long running processes, and business logic). In Camel, you typically handle more technical aspects such as routing and wire protocol conversion. Typically in a rather stateless fashion.
Of course, there is something in between - such as routing between homogenous protocols where any solution would do. Such as your rest example. Also note that Camel can be run together with Orchestration engiens such as activti and apache ode.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With