 It's going to be like a lot of you have probably already heard about Apache Camel And I don't even maybe even use it but have all have some of you even like Use it on a low-code or even no code version of it That's what maria is going to tell you about in the hair talk about kayoto the low-code and no code apache camera editor So maria enjoy thank you hi, um As rene was saying i'm going to talk about a low-code and no-code editor for apache camel and um, well First maybe a bit of an introduction I have been working at redhat since 2019 and there I focused on the middleware integration team and We use apache camel for that and since 2021 I have been leading the kaoto project with reichel and the or Aim with this was to try to make the life simpler for people who need to Integrate or orchestrate different architectures and integrate different services so the Title of the talk is a bit big. It's kaoto the low-code and no code editor for apache camel And what I want to do is maybe break it is into different small parts because some of you may be already Familiar with apache camel if you are not you should be But maybe you have some questions about what apache camel is what exactly is the definition of low-code and no code editor And then finally what is kaoto? so i'm going to start by Explaining a bit quick what apache camel is for those of you who don't know yet what it is And then I will move on to What kaoto is First what an integration framework is or what? How do you use apache camel? Well most software architecture nowadays looks something like this you have different services They may be apis. They may be data stores. They may be data warehouse databases Maybe you have some front-end you're communicating some third-party api. Maybe you have some message brokers in between a q kafka. I don't know but you have different services And you have to connect each of them with some of the other services and The idea is that How can you compose these services in a way that is Decoupled but at the same time it's easy to maintain and That doesn't add a lot of overhead to your architecture. Well The these these little links between different services or different Components is what we should call the middleware the glue between the components the the pieces of code that make sure that this api can connect to this other api for example if you have a Web that sells something because it's a shop you have maybe database with all the products you have some Paywall third-party paywall to Have the customers pay for those products and you have to connect each of them So you need some pieces of code that connect each of them But how can you properly generate these pieces of code that they? um Make the services talk to each other Properly and easily and in a way that it's easy to maintain. Well, that's what a chikamel is for you have It's an integration framework that provides this link in between components. So you have different components like abc whatever can be apis it can be message brokers it can be Anything and you have these orange parts that are apacicamen. So apacicamel is not only the The arrow that knows how to move data or trigger events from one service to another But it also contains these little pieces these little boxes that are the dark orange That they are the connectors that know how to interact with each different component. For example, if you are connecting to sales force Of course sales force has an api but that api evolves over time. So if you have some software that interacts with sales force and You need to connect it for example to some I don't know some shop That you have in some other service some other Can be a wordpress shop or whatever and you want to connect both of them You need to know not only how to connect to the api but also How that api works can understand the inners of that api and The model of the data and a lot of things that With time you have to maintain if sales force change the api If shop if I change the api if you need to understand how they are changing and maintaining it and Your software may have bugs that you have to maintain and Maybe some third-party libraries you have to update. So in the end what is would be interesting is an integration framework that understands how sales force works and offers you like A more stable An easier way of interacting with it and you don't have to worry if sales force version changes If their model changes you don't have to worry about it because someone is preventing you from having to maintain that And this is what apache camell does apache camell has More than 350 different components. I think it's Even more than 400 at this point and it covers most of the potential use cases you will ever need it connects to Things that are very simple like telegram You can do a telegram bot without having to understand how the telegram API works Or you can connect to sales force or you can connect to a kafka or in q broker or rabbit in q Or you can connect to different databases. You can connect to apis And all that is provided in a way that is easier for you to deploy and to implement And apache camell also offers you something that is called the enterprise integration patterns. I'm not going to explain them Um We still see the first slide. You shouldn't be seeing the first slide. I have been moving slides. Why Wow, so you just missed all the all the I don't know why streamjard is doing this I don't know Sorry, uh, the slides are on the url that you can see at the bottom. So you can follow that anyway So these enterprise integration patterns are Um Patterns that allow you to implement easily you don't have to implement this For example, if you need to do a round robin or if you need to do Some uh loop over elements or if you need to you don't need to write the code for that apache camell contains that so you can say I want to round robin for this or I want to I know, um Change the the transform the data from one Format to another and that Apache camell handles it and knows how to do it So if I change my slide, I have to click on streamjard. I don't know why to for you to change it. So Sorry, I don't know why streamjard is doing this. So, um For example, this this is uh Well, this is kind of what I was showing before but it wasn't shown That you have different components and you have apache camell with Which is the arrow that has the router moving their message or the events in between components and then the Dark orange boxes that um are the components that know how to interact with different services And uh apache camell is much more powerful than this but I don't want to enter this because this is not an apache camell talk By itself. I want to show you The the low code no code editor code So for example, if you have uh, something like this that, um Is a workflow you need to implement you have to read data from some csv file or I know some um External source and then you want to the You want to loop or iterate over different rows and maybe call some xml api maybe uh trigger some database To get some information or to update something based on those rows And then you want to process it and transform the data and finally aggregate it in and store it into a database usually You are here connecting to four different services and doing some processing and everything and If you think about how to implement this it will be a lot of lines of code But if you do it with apache camell, it will be something like this This uh workflow is represented by this in apache camell. So as I said apache camell is very useful To uh compose different services because it allows you to simplify the way you are developing and the way you are Maintaining the code because you can see for example. I'm uh, if In the line four it's calling and reading from the source csv A file but if you then later have to change this and instead of a source csv You have to read it from I know I want to read it from I want to watch some Events coming from gafka or something like that and just iterate over them Um, you can just modify that line number four and change where the data is coming from and then apache camell knows how to compose everything and Free deploy everything just by changing this This source of the of the data. So this is very simple You may say well if apache camell simplifies the way of implementing and developing things Why would I need a low code no code editor? This is already low code, right? Well It is but it's not because you need to know this the main specific language of apache camell to be able to um implement and write this So I'm going to talk now about what the low code on No code editor means for apache camell so first, uh, the no code um When you when we talk about no code it's something like You don't even need to know that apache camell exists I want to provide a visual design interface with diagrams you drag and drop you move things around And that is what? Generates the code and you don't really even need to see the code at any point or know that there is an apache camell behind it doing it. So I want to be able to edit and implement a diagram a workflow without Really understanding what what? How the code is going to be implemented and deployed Then you have the low code version in which you maybe might be cleaning the learning curve or maybe you are A developer more or less aware that apache camell exists But you are not an expert or you are in a hurry and you just want to say, okay I know this is the the workflow and I want to quickly Create the skeleton, but I'm not really ready to go into what will be the full code mode, which is I have an idea. I just Going to um I don't know debug even complex stuff and I want to Maybe I'm noticing Salesforce, but I'm using some other alternative that is completely proprietary and From my company and there is no apache camell connector But I want to create an apache camell connector to be able to integrate it better or to offer it to my my customers So what caota is going to focus is in the no code no code But it also comes in the form of a vscode extension so you can use it in the full code version And finally, let's talk about caota. So, um It's uh, uh This is a snapshot of caota. We are quickly evolving. So there may be new buttons already there and As I said, you can drag and drop things and you can Have it as Either installed in your cloud so it interacts quickly with your cloud or you can have it As a vscode extension or you can have it in your local machine and it will not only Allow you to draw but also to deploy things in the cloud and It supports different versions of camell like different dsls of camell. So camell also offers you More simplified or more complex dsls. Like if you want to use camellet bindings or camell roots if you don't know what this is don't worry, but um This is what caota Supports you can change from one to the other easily and I'm going to show you a bit of the How this works, I want to show you this is a vscode I just want to show you how if you install the camell language tools extension by redhat Uh, you will get caota and then you can just say okay. I'm going to start by something dropping a canative and It works here but what I want to show you better is This url that I can maybe post in the comments Allow you to Test caota here. The deployment is disabled because This is on a cluster and we don't want anyone to just enter here and deploy things and waste resources But you can test how the deployment works. Um, you can you have different types of Integrations you can create for example is interesting the camellets because the camellets are like macro steps. So you can In this catalog of steps you can Add your own steps For simplifying if you have a recurrent macro steps And then it's just your drag and drop and then You can choose how it's going to What is going to do, uh, this is a camellet binding. No, I want to do a camel root So I can show you better the for example I can show you how you can add different choices Um And split and say if Something happens Then you go into This branch if not you go into this other branch and then you can add more things Here And then you can build and see the source code being built here on real time And this is more or less how it works. Uh, I don't have much time, right? How long do we have? 10 minutes left. Okay. So, um, I'm going to show you, uh, how this works For example with deployment I have A Kafka here I can Start I have a Kafka broker And I have a I'm going to remove what I have been doing. So for example, I can Say I want to listen to a Kafka that I have here and, um, log what I'm going to, um Log what I'm going to receive from a Kafka broker. Um This was demo cluster And boot 2019 The topic name was my topic. I think what I configured here Right demo cluster Kafka bootstrap and my topic. I forgot the Kafka bootstrap And then I can configure the log and say, okay, love level info local name And I can, um change the Change now I can show you the source code. So This is a camel DSL. This is easily, um, when you know camel, this is ah, you are not seeing what I'm showing you again Right, you're still seeing the No, it's Oh, sorry. Yes, you see the browser. I don't know why it was showing me for a moment something else. Um So this is easily you can edit this and say, okay instead of, uh This sink I may want to use some other sink that I don't know if it's Called like this. No Sorry, I need to see the Okay, so for example, instead of I'm a thumb cloud watch. I can say no, I want to sink the log and you can either edit the source code or edit the the graphic side and, um if I deploy this And my local machine does not become crazy Um, no because uh, I didn't deploy it in the right namespace I have to change the namespace And if I deploy this it's being deployed and I can use the camel tools to read the the log and, um It's subscribed to a topic if I now write something on the topic I can see that it arrives at the other side of kafka And it also goes through a bunch of coming So I could do anything I wanted with this Topic and maybe send it to somewhere Somewhere to some api some other kafka some Transform it to send it to some other broker whatever I need and, um As I said gamut is very powerful and it allows things like I want to um, no for example aggregate the aggregate one is, um It allows you to, um When several messages arrive you can aggregate them into one single message Or you can as I said, there's a lot of uh different connectors You can and all of them are here and you can configure them just by clicking here and You have the help Helps you to decide what you need to, um Add to the configuration And I think I'm running out of time. So, um, I just want you to know that we are also working on The pins configuration, which is kind of advanced, but it also provides a nice Visual way of adding pins pins. Maybe something like I want to add a database connection A database configuration and instead of, uh, having to, um, configure it, um Here in the source code manually or Having something more complex. You can add pins here and it will, um Allow you to, um Usually it's based on I don't remember how is the database Configuration, but you know, uh, you can configure here different pins and you can see here on the on the left side that the That the pins are being added. So it's everything is very visual. The idea is that you don't have to Know about Apache Camel So you can just, um Start with the visual side and when you are more familiar or if you are already more familiar, you can go jump to the Source code and start doing things that I want to change things and I want to modify things And then if you are very advanced, you can go to the visuals to the code and you can deploy things and you can debug and you can And I really encourage you to try the url I put there because I think it's interesting and we are eager to to Learn about your feedback and how you would use this so we can make the user experience better And I think we can start the Q&A Yes, indeed indeed. So Maria, thank you a lot. Uh, very cool to see something like that I really like these approaches to get people more and more into this Technology, even though they might not be too familiar with that and I'm not sure how to tackle that and that's a good anti barrier to get started um, but on top of that a question would be like, um How would you say what's the best approach to get started? Are there like any tutorials or labs to kind of guide you how you could tackle all of that and kind of get started, you know Yes on kaoto.io. We have, um We have not only, uh A user documentation, but I like more the workshops because it goes step by step explaining you how to for example create, uh Listen to a folder when some files are there and it also helps you learn Apache Camel but it's more like, um I challenge you to do this and then I give you some hints and then I give the solution with a video and step by step What do you need to do? So I think it's a very, um easy way to learn how to use kaoto and Apache Camel Sounds great. Thanks a lot Another question was how well does this support securing usernames and passwords for example for connections? Well, um, we are working. We still don't have it yet in place, but we are working on providing some, um Discovery of config maps and properties coming from OpenShift So instead of having to write the username and password, which is something we don't want to do Um, or use some external property files if you're in the cloud Maybe a standard property file is not the right way to do it But just a config map or somewhere inside OpenShift or Kubernetes Um, and you should be able we don't have it yet But when you have for example here, you should have a drop down instead of a A text and if it had some, uh, I don't know if I added something without indication Uh, yes, yes you're so here you will have a config map selector not Directly the the text input Um, perfect Yeah, just saw that someone was asking for where the links are but someone else linked the workshops on from the carer to side as well so So Ricardo is also a developer of of cod. Oh, perfect. Very good All right, we have no more questions and we are actually on time on perfect. So again, Maria Thank you a lot. Um as always for everything like if you have another follow-up question Whatever you can always reach out to us and um always get in touch with us. We can follow up with that Um, we just said like organizational questions. Yes, this recording is this sessions where we record it So you can watch them later on they're going to be on youtube actually We have like a wethead developer Channel there and you will be able to to watch them after watch as well and the last thing of that, um, we will have a break and like almost an hour And um on this main break you can join the main channel and there you can talk with all the wet headers and all these speakers And have a very nice exchange. So just for everyone But for that, I would I would do a small break and we will see us in like four minutes now Almost and we will have the next topic covered then See you then. Thank you