 So today I'm going to cover about like the project Flogo and the project Flogo is basically the opens it's a Go base open source stacks for the event driven apps. I'm going to talk about how basically it's basically why it is called as the event driven one apps and first of all it's about me I mean like I'm a my name is Sahesh Sharma I'm a solution architect at the city of office at of the tipco and this is my email ID in case you want to guys send me any kind of queries later as well you can send me that as well so introduction to the Flogo it's one of the innovation lab project we have in our company so we started with the like going into the like when we basically what we do is we work on the emerging technologies and we find out if there is something interesting and we work on top of that one so like for example Java Java is was a like a language right initially now people are using the spring framework and all why they use it and all this is something similar to what we have as a Flogo so they they provide a lot of functionalities common functionality for you to basically avoid the those kind of a coding you can basically just focus on the business logic so it's a one of the lab project that we have basically created it's built using a goal and language and it's a ultralight edge microservice framework even driven app with native support for AWS lambda function and it's 100% open service source with zero lock in and you can build a smarter edge application using a machine learning capabilities as well so it has a native support for the machine language as well why we have chosen the goal language it's because of the elegance in the simplicity you guys already a goal developer so you know much better I mean it's a statically type zero OS dependency self-contained binary with no additional libraries required concurrency simple and efficiency concurrency model garbage collection is much better in the go and the speed is fast which is we needed all for the devices as well so for all the IoT application we use is this Flogo now I said it's a ultralight edge microservices but how small it is so if you compare with the Java and the node.js Java at them I mean like when when you create a kind of a binary it basically comes up with the 180 MB minimum size and when you basically create a node.js application it basically come up with the 74 MB but Flogo is while comparing with other languages it's just 10 less than 10 MB in size now how it is small that's the question so because it reduce the all the kinds of a framework part as well as the VM part the JVM is not required over here there's the reason over here it's reduced the size of the Flogo application now let's talk about like why I call this as an event-driven app because it's a like a powerful event-driven programming model based on the trigger and the actions so we have a like concepts of like having a triggers as well as actions so we are triggers are more like whenever you have anything coming from the external source and you want it to basically take that as a information so receive data from the external sources are managed by the configuration threading model so you don't have to basically write a threading to basically handle that one it will taken care by the framework itself have a common interface enabling anyone to build a Flogo trigger so you have a like activities that is already available you just configure it it's will be done and handlers are like basically it's used for the dispatching events to the actions actions are more like a your business logics that you have to write in order to basically execute the functionality and activities are the just the basics units of frame works that an action can leverage why would I recommend the Flogo of course because of the project Flogo core is open source modern driven is text for the IoT and the cloud natives Flogo core enables all projects to benefits from the common threading logging data type cohesion data mapping pressing monitoring hooks common contribution model enabling each project capability to leverage hundred of activities that has been contributed by other developers as well and we also have a concept of action chaining action chaining is more like we also have a different projects in the Flogo so it's not only the for the kind of for integrations we also have a like streaming Flogo streaming Flogo rules so it's the way it works is like you don't have to like say for example when you basically in the previously when you create any kind of IoT applications what you have to do is you have to take the information in the one kind of integration messaging server and then you have to pass it through the broker or messaging server you have to send it to the another kind of a streaming engine but here you can basically we have already all the things available for as a project so you can just put the message to the from the trigger and it will be taken care by the framework it will be transparently uh seemingly basically send it to the other components if you need to basically aggregate or you wanted to basically combine the information and if you wanted to make a decision real-time so you can do that and it's also extensible now these are the difference uh Flogo uh Flogo has a different projects also available on its ecosystems so what is the like Flogo flow which is more for the like you can create a any kind of an integration flow Flogo rules is for making a decision at the like let's say for example at edge I need to basically filter out all the information that I'm not really looking sometimes the sensor sends the lot of information which is meaningless if it is a repeated information I just need to filter out so that kind of for real-time decision I can make using the Flogo rules and Flogo stream is more like a similar to like processing the information fast in the so that can be used for any kind of a contextual rules or streaming processing is Flogo a library framework or system it's a library so it's a like it's a go-based again the library it's a project basically we have like a wrapper it's a wrapper top of the go now Flogo flow so Flogo flow these are the different projects like I said right the Flogo flow is one of the project which is based on the Golang as well so ultra light process engine for application integration you have a conditional control flow so for example based on a certain condition you can create another branch and you have a powerful step-back debugging capabilities in the web browser itself so it also comes in the two parts one is a like you can write it everything like the same way as you Golang or you can use the web browser to basically develop your application so Flogo flow process engine what it does is it gives you the managed control flows it also manages the state changes like what you have been also explaining earlier and conditional branches are optional but primary always execute so the whatever the branches that you have when you create on the based on the condition it will execute only based on the condition but the primary always executes for sure so these are the different options for like developing the Flogo flow so you can either use the zero code web UI option so where you can just use the drag and drop option to basically create a Flogo application or you can use the Golang API or you can also if you guys don't like I mean I'm sure you guys are not like that but if you guys are not like the command console and all you can still use the JSON based it's a basically you just write the JSON and it will execute the model for you it will create the application for you so you just have to provide what are the packages and all what business logic you want to basically handle it that's it. Flogo stream is a lightweight stream process for the edge devices it can basically help you to aggregate capabilities join streams from the multiple event sources or filter out the noises so you can do the all the aggregation for example in the like for example ATM like I wanted to check if there is a like multiple times that my card has been used right in a same day so that kind of a things all the kind of a aggregation of the amount that has been used I can use it on the edge itself so that kind of a capabilities or joining all the amount that has to be basically in a one day I have a limit for withdrawing a money so I can basically figure out whether how much amount has been basically so that kind of a things I can do at the edge itself again the Flogo streams with Flogo streams you can group and join events across multiple different streams of the data you can join occurs against pipelines inputs pipelines are nothing but these are activities so you have a one pipelines that can send the information so for example aggregation pipeline can send the information to the join pipeline so input is input through the one pipeline will get give the output and that will be available for the another it's in a synchronous manner as well. Now Flogo rules Flogo rules is more like a you make a real-time decisions based on the conditions so you can say that okay let's say for example you wanted to create a kind of a campaigns where you basically find out okay if a mill basically expand 10k of amount on certain area then send him or offer so that kind of a conditions real-time decisions that you can make it on the using the Flogo rules and it's again the open source complete extension with the API and the interfaces declarative rules rapid application development stateful contextual reasoning across time and space. Now there is also a machine learning capabilities that we have on the Flogo as well so you can execute the tensor flow models now creating a flow tensor flow models is another thing that you can use any other open source we also have I mean from the I mean in tipco we also have like something called Statistica which can help us to basically creates we usually creates a model on that one so which is again it's not a like open source but we have that capability as well to basically create a models on that one and that can be executes to the using the tensor flow models we can execute inside the Flogo it has a native support for that as well 100% open source with zero locking and why ML at the edge because there are like lot of data generation happens if we if we talk about the IoT's right there are like lot of data generation happens and data collection exists the ability to transport if you keep on sending that kind of a messages into the like to the other layers for example as a message it will be huge so in order to basically filter out that kind of a things of course you can use the machine learning at that so you can just train your model and decide whether what data kind of a data has to be send it to the next system and you need to have intelligent aggregation you need to decide what kind of a information that has to be aggregate and send it as a single information so reduce the transfer and the storage cost is smarter more efficient network it can predict also it can show you the smarter devices actions less network latency action resilient to the network connectivity issue so those are the issues that we basically have usually the prediction lacks if we have a like massive data transfers connectivity requirements and what we have next on the Flogo is we also have a like project measuring if you guys have noticed that as well it's a like one of the open source event driven micro gateways if you guys are like very much interested into the like blockchain and all we also have started like exploring as well as we have created another project top of the Flogo which is a like open source project doctor open source framework for end to end design development testing and deployment of blockchain smart contracts so you can easily create a it's a model driven kind of a model driven kind of a approach where you can create for any kind of a fabrics so at the moment we suppose a like hyper ledger as well as corba three so we basically suppose that one and we are still figuring out the other so there are like different ways of like basically communicating to the blockchain network because it has a like its own way of if you need to basically understand all the logic of like different fabrics of the blockchain you have to basically go into the details so we are basically reducing that kind of a that kind of a things for you guys I mean it's easy to basically just write once and deploy it anywhere any of the blockchain fabrics and this is the links for the this is the link for the basically for the project measuring as well as this is the link for the project dovetail and this is one of the most popular project that we have Flogo has the most popular open source integration project that has been basically if you look at the graphs and all it has been like project contribution 100 plus count project contribution were there 650 plus open source extensions has been contributed on this project and this is the link for the Flogo if you guys want to basically start doing something it's open source you can just go to the http flogo.io and this is the github link for that one I can just show you walk us through some hello world code of course yeah I think that would be more interesting to me yeah sure it's okay I'm sure so first of all I just wanted to walk you through the website so wow maybe yeah this is the website that we have also for the like flogo.io and if you guys just go into the the low sorry can you go this it's not still visible just share it it's extended screen okay yeah go to the flogo okay so this is like a web UI that comes out of the likes out of the I mean the when we have created this project this has come as a like screen you can basically create a new app which you can choose either like devices or the microservices if you wanted to create just a microservice just you can show my command line also it's open can you say try flogo now this is the doc command you just run it and it will give you where the UI was actually the motivation to my question so flogo is a system not a library because you've got application actually running now um no this is just a like behind the scene of course you I mean it's not really a app league system basically because when I say it's not us we have done this way is like for making easy for you guys but you also have an option from the command line where you can you don't need to run it every time on the docker this is just a one case you can also do it on the command line so like you do it in the go like yes sorry can you link it into your application sorry I don't understand link link yes yes yes yes yes yes yes the similar to what you can go get something exactly yes yes we can do that one is like you said right I think you presented one of the slides there are three ways you can build your app this one is the other one is command line and the third one is by using the gs behind the scene this will also create a gs and so if you want to link you can directly go get the library that's one way if you are native and wanted to be native to your go apps this is more of a visual way again open source UI what it does is basically the app that you create it compiles or a translation there which writes down to the library and still if you want you don't want to use the UI it's fine you just go use the library directly so it actually generates a case on the sr yes which the application reads it and executes exactly yeah but what do you ask also right I mean we can of course import all the kind of packages that is for the flogo as a like flogo flow as a one of the project as a like so it's library so just basically import into your go language and you can just make use of it that's also possible so I do sometimes I mean like I sometimes like write only the go language application and I just imported like those packages that's it I start with that I do that first so you can show also the like the console way I mean like all the libraries that we have on the tipco.org right do you want me to take yeah that's also this is the github go inside the github um you can see if you see some of the samples it directly gets the library and it has been built on top of that publish in can we see an example where you actually import the library from the code I just go to the command line just give me a second I'm just directing to the my this is just a simple hello world so this is just a like when I create a like a simple hello world example so this is how it basically so you can just take it as that library is a github tipco software flogo lib core activities so this is core is the like main things main engine for the all the new projects so it has a like shared kind of things for the other projects as well so this is like this structure that's automatically gets created I just have to write a business logic on that one that's it I can just start writing the business logic inside the function sorry I mean I'm not that yeah over here I just write the business logic over here so I'm not that kind of a developer but yeah I mean I usually use the more what we have as a existing functionality over here so yes so all the things has been taken care by the framework for us sorry you mean to like for the okay so we can just write it over here as a as well as like from we can write a trigger there's a one way is a like I showed you right that there is a trigger and the action right so I can write the trigger which can basically send via any kind of a communication to the or channel yes exactly trigger handlers will be there to basically pass that event to the action sorry over here is like here we are I can write just like kind of a so I have this contextual activity right so I can get the kind of a data all from here context or something main function for like invoking the no it's not here it's not here yes the entry point that's what I'm saying so usually if there's an entry point of this class then yes it is hidden over here it's basically only the main action is like over here where I can just write the business logic yes yes framework yes that's correct it's a framework yes and I think yeah let me just show you the thing as well so if I just go to this hello world right so I have option over here like creating any kind of a activity over here so I can just go to this one and I can this is just a log one activity I can just go back and I can here I can just choose any of the things activity so parsers yes one app is a one library yes I mean one app yes yes one library one library right I mean one binary right for everything I mean like either you create a of flow go flow yes everything so flow go flow flow go stream flow go rules everything can join together create a one binary file executable yes and it will have no dependency on the other libraries it will all be everything will be here on and everything less than 10 mb as well yes so that's that one so this is all aggregated functions everything is there you if you need to basically use the amazon sns and the couch base connector also it has like these are like everything has been like contributed by even publishing a message to the Kafka everything connectors are there so you can use any of these things to basically yes rest service yes invoke rest service you can work the rest service web socket message okay let me make it a bigger size I think over here so over here see global cash reply to trigger return aggregate is global attributes update to your device you know all these are like we have a like contributed by developers only like this is a open source community again what is that sorry I haven't used yet yeah how how does it know the hardware target let's see the configuration yes control raspberry okay but it could be it could be something else yeah you can see this like what is the I mean the activity has the inputs and all so up direct down off directions input output methods so these are the and you also have this actions like you have the functions also over here so you can just use those functions to basically use the easy methods to basically drag and drop that's it and this is like all like open source the best part of that I just I'll show you that this is this is here no this is the yes I mean this is a tipco repository only but it's again the open source everything so if you go to this tipco software get IO get hub dot IO flogo showcase over here is everything see sorry so it's a step is also given in the flogo IO dot if you go to the website right it's like it's it will give you the step by step to basically start it so you can just go through the steps what are the go get that command you have to execute to basically guess the flogo libraries and then you can get it and then you can start with the just writing a flogo activity first that you have to create so that will give you the kind of a framework and then just start writing your business logic inside that particular thing and then you can create like install right like a go install is there right that you can use for creating a kind of a binary that will just import it as a so if you see over here also option is there you wanted to basically go for a new install new activity so you can just use that one to basically provide your link your github link and that's it it will basically automatically add this one over here as well so I create anything I just put it into the github and just put it over here as a like url I can just add that one new one even if there is something on the showcase right I can just add it from here so I just say let's say if something is not there download file right so beyond the this one I can just go this one yes is there like a commercial offering tied into flogo and what is the difference between open source okay yes there are there is a so basically sorry I think it has not able to find it so of course there's enterprise versions also available for this one but most of the things what do you have in the in the like enterprise version we are making it everything as an open source so even this UI right it is available in the like open source as well and most of the features which we which is actually present in the like only in the like enterprise version we are all trying to basically bring it in the for the open source version as well so it's like connectors everything is there already but still it is not visible at the moment but we are able to basically we are what's the difference between the enterprise support I think that's the one thing support more connectors that's what so the those connectors also we are trying to bring yes yes yes yes so for this one from the flogo there's an option over here as well yes that's for just for the testing if you wanted to do whether the update thing has been so again I think you want to install the binary some type of platform correct that's also option is there I think yes export and you can actually create for any kind of a machine 64 yeah that's what if we have so legacy apps maybe we'll have this is just in format does it come in like a unit testing whatever testing integration testing framework yet yes it has that's what so sorry yes you can basically do that I mean just go to the project so over here is a like testing and you can basically open this one and you can put any input over here and see whether what is the output coming for each and every activity as well and when you run it through the flow it will give you the actual output so you test through everything yes I won't write that one yeah but I can get back to you on that one it's there right so is there any other question or something ah yes let me just show you it's a micro gateway this is a project mesh link we have started like few months back or something I think this is again the on the flogo side we have created on top of flogo so it's a micro gateway even driven micro gateway if you it's it's it's more like a when you're basically working on the iot projects and all right there's a gateway that can basically it's a very lightweight kind of a gateway basically there are like stages right from the device to basically get the information to the um what you call it as a like fog or anything right so that's where it between states right so it's just give a kind of a like no information back I mean to the next level so it's a kind of a policy you can basically put the policy or all those kind of a connections and all that kind of a thing why would I use that over say just calling a lambda function I mean there's another function of course you can do that yes I mean you don't have to that is a like serverless kind of architecture right that you will be so does it have a device shadow for example I have not really I'm sure you have the iot device is intermittently connected to the internet your gateway does it shadow the device you mean like multiple like like a shadow as in when it's not connected and you think you believe the device is on off right so the game is always online right connected correct but the device may be offline correct so it has to basically notify that kind of a synchronized state okay device and this is not more of a hardware again it's a lightweight library that will set either on the iot device or your gateway so what you are saying is of course when the device is offline someone talks about serverless right so if the connectivity is not there it is meant for those scenarios wherein you can instead of sending every microsecond kind of transaction to let's say AWS lambda maybe you want to perform some aggregation or some filtering and so this will provide you with those functionality and when the connectivity is up it will connect with lambda and publish yeah I think the question is about mesh link what does it do what is again as you said right now it has been merged into the logo umbrella but it was meant to be and gateway kind of a feature not the hardware but software kind of feature wherein it does this device shadow wherein it collects aggregates and publishes to serverless or any other frame but if we're looking at logo right now all the capabilities we have started so as you can see right I think it has connections with MQTT pass HTTP so all has been merged into the logo umbrella meshry is a like you want to talk about that it's our api gateway so if you know the api platforms then meshry was the first api gateway so if you have heard of apg and all yeah apg is another one from the go one of the publishes to the api gateway when when let's say the internet connectivity pathway so it's on the server it's just a connector to meshry so like way if as many as you is the Kubernetes style Istio right yes not somebody istio the service mesh so it's essentially a system target iot hd devices that's right another thing also we have like I mentioned to you right like the project of del also which is top on the it's again top of on the logo so we we started exploring like the blockchain applications as well and we thought of like making a something which is a like model driven kind of a smart contracts for the all the kind of a blockchain or ledgers so basically fabrics and all so basically we use the hyper ledger at the moment we suppose that one hyper support a hyper ledger as well as a corba three so those corba corba three yes cobra right a cobra r3 c o b r a three what is a cobra right coda sorry coda r3 coda r3 yes coda r3 yes so coda r3 also we we are able to basically support those two kind of a fabrics for the blockchain and it's just a model driven so basically you just create a smart contract for once and you can deploy to any kind of a like the at the target is like any kind of a blockchain fabric you'll be able to use it so you don't have to basically just stick with one kind of a because in same company itself right there are like many departments are there they can have a like different kind of a like blockchain way of implementing right so you can just write once a logic and you can use it anywhere else so this is the link for that one as well so the deployment is a binary static binary yes the static binary can be packaged up into a computer yes and manage using Kubernetes and yes correct yes it is possible so if the binary dies or the executable dies it's Kubernetes responsibility or yes wherever to restart it yes that's right so where is state managed um connectors databases yes we have like we have a like state managed locally as well instead we have a like caching option also for the like using the like connectors that we have like the couch base connectors and all so that is the way we basically do if you're talking about only for the internal states of the application that is basically I'm not sure what they are using it internally in the framework but they use it I mean like for the caching they does yes as a like similar way what we have as a go routines right we send it as a like before that you can create a kind of a arrays or you can just cache it that kind of a way it's there so local databases local database is like local file just the application or what like you want to maintain state let's say it's collecting all the right instead of sending it yes I can do I have a connector for that as well yes yes so that's those those are the connectors that I can basically use it for like writing into either of the new types of database like for example not all the DBs like even we suppose like most of the DBs but we basically go for the like latest my SQL and all of those things because they are like like weights and all exactly which one sorry oh have not checked that one bold dv do we have yeah so there'll be one we'll be creating a new meetup on Wednesday for the for the OVT speaker so if you guys are interested we'll be creating one maybe tomorrow and then they will be for Wednesday so if you guys are free can drop by um thanks to tipco for providing the venue and food and thanks to engineers for like to stay back and check with him more about to go yeah this is free