
Apache Camel é um framework de integração que ajuda a diminuir a complexidade e o impacto dessas integrações. Como um framework de integração, seguimos boas práticas que foram identificadas e descritas nos padrões de integração.
Em vez de escrever manualmente o código de integração, usaremos componentes para isso, que podemos facilmente configurar com o Camel. Essas configurações são feitas na rota (routing engine). Ou seja, o Camel não implementa os padrões como SOAP e WSDL ele apenas configuram o componente que trabalha com isso.
O desenvolvedor principal do Camel, Claus Ibsen, descreveu o Camel da seguinte maneira:
Apache Camel é um framework Java de código aberto que tenta deixar a integração mais simples e acessível para todos os desenvolvedores. Ele faz isso através de:
- Implementações concretas dos padrões de integração (EIP)
- Conectividade com uma grande variedade de protocolos e APIs
- Uso de uma Domain Specific Languages (DSLs) para amarrar os EIPs e protocolos]
Roteamento entre endpoints com Apache Camel
Essencialmente, Camel é um roteador (routing engine), ou seja o Camel roteia os dados entre dois endpoints. Um endpoint é um serviço web ou um banco de dados, podendo ser um arquivo ou file JMS. Em geral, é um ponto onde pegamos ou enviamos dados. A tarefa do desenvolvedor é configurar, por meio de um Builder, os endpoints e as regras de roteamento. O desenvolvedor decide de onde vem as mensagens (from()), para onde enviar (to()) e o que fazer com a mensagem no meio desse processo (mediation engine).