Clean Architecture Orchestration

Enterprise Integration Patterns
Wide range of supported formats and protocols
Extensibility
Multiple DSL
Good Documentation and tutorials
Footprint
Technical Support
//Start with a timer that executes the operation every 10 seconds from("timer:java?period=10000") //Access the CSV file which can be on an api or storage device .to("{{source.csv}}") //unmarshal and split the workflow per row .unmarshal().split(body()).streaming() //process each row //the process is defined in a separated file .process(processCsv) //push the results to the following API .to("https://nominatim.openstreetmap.org/reverse") //the returned XML is also processed .unmarshal().jacksonxml() //again, the processor is defined in a separated file .process(processXML) //Prepare an SQL query based on the result of the process .setBody().simple("SELECT info FROM descriptions WHERE id like '${exchangeProperty.pollutant}'") //send the SQL query to the database .to("jdbc:postgresBean?readSize=1") //collect the result and process it .process(processDB) //reunite the parallel streams that started on the csv processing .aggregate(constant(true), aggregationStrategy) .completionSize(5) //given the list of outputs per row in csv, process it .process(buildGeoJSON) //store the result in another database .to("mongodb:mongoBean?database=example&collection=mySpatialObjects&operation=insert")
K-Native Camel: Camel K
Kamelets: Kamel Route Snippets
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: telegram-text-source-to-kafka spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: telegram-text-source properties: botToken: the-token-here sink: ref: (1) kind: KafkaTopic apiVersion: kafka.strimzi.io/v1beta1 name: my-topic
Low Code / No Code Integration Development
You can find me as @delawen on many platforms.
The slides are on
https://slides.delawen.com/2022/JavaDayIstanbul/