For å forstå hva Camel brukes til bør du gjøre deg kjent med Design Patterns, og boken Enterprise Integration Patterns. Boken er for øvrig skrevet for å gi deg en innføring i designteori, samt mønstre og praksiser rundt objektorientert programmering. Ønsker du ikke å dykke så dypt ned i teorien bak, så gir jeg deg kortversjonen her: Boken forklarer måter å organisere løsninger og mønstre i programmering på, og forfatterne analyserer og konkretiserer disse mønstrene. De tilgjengeliggjør forklarende EIPs som du kan implementere i dine løsninger. Og Camel er en verktøykasse for å få til nettopp dette. Boken anbefales!
Men, tilbake til Apache Camel. I bunnen er Apache Camel et bibliotek som tilgjengeliggjør interfacer for disse EIP-ene. Dette innebærer tilhørende implementasjoner, config og hjelpesystemer. Elementene vil spare deg for mye tid om du vil implementere en løsning som skal følge Enterprise Integration Patterns, og samtidig gjøre integrasjoner enkle å sette opp. På en måte er Apache Camel en regelbasert bygger av router, på en EIP-måte. Camel vil sitte mellom flere ulike systemer, og fungere som en broker mellom dem. Dette er istedenfor å la systemene kommunisere direkte, camel tar nemlig over den jobben og arbeidet som skal gjøres.
Som utvikler vil du med Camel kunne få en Java-objektorientert implementasjon av EIP-er ved bruk av API. Dette er for å definere egne routing-regler, og for å bestemme hva slags meldinger som skal aksepteres, og fra hvor. I tillegg handler det om hvordan du vil prosessere disse, og sende meldingene til andre destinasjoner. Du som utvikler vil også kunne definere komplekse regler som kan følge forretningsprosesser og logikk, samtidig som et av prinsippene i Camel er at Camel selv ikke gjør noen antagelser om hvilken type data du trenger å behandle. Dette er et viktig poeng, da det gir deg som utvikler en mulighet til å integrere alle typer systemer, og mot tilnærmet alle transportmetoder. Dette skjer uten å måtte konvertere dataene til et kanonisk format for å jobbe på dem. Dette kan du da gjøre på en høy-nivåmåte, så de samme API-ene kan brukes til alle prosesser. Dette gjør at Camel er svært lean til forretningsformål, hvor dataintegrasjon og forretningsideer kan følge samme bane.
Integrasjon med rammeverk som Spring og innebygget unit-testing vil også være et pluss hos mange institusjoner, da dette er teknologi som allerede er implementert og i bruk mange steder.
Sett under ett er Camel et verktøy for å håndtere transport og prosessering av meldinger som sendes til og fra, i et system. Camel er altså verktøyet for å håndtere de ulike metodene for transport, og de ulike formatene meldingene kan ha. I tillegg bestemmes det hva som skal gjøres med disse; det gjør Camel til et kraftig verktøy du kan vurdere i et økosystem, dersom du skal designe en komplett løsning for bedriften.