Golang-powered open source IoT project Flogo to build ultra-lightweight integration microservices.
The Internet of Things (IoT) brings up 50 billion devices until 2020, which have to be connected somehow. Challenges include low bandwidth, high latency, non-reliable connectivity and the need for low network costs. Therefore, a gateway is needed remotely on site of the devices to filter, aggregate and send just relevant data into the cloud or data center. This session introduces project Flogo: A 100% open source framework, which allows developing ultra lightweight IoT integration applications with a zero-coding web user interface or design chat bot. Coders can also rely just on code, of course. It is written in Google’s Go programming language and 20-50x more lightweight than similar Java or JavaScript frameworks. Therefore building very lightweight microservices independent of IoT is another good use case for this framework, e.g. for serverless architectures using open source frameworks such as OpenWhisk. The session focuses on live demos and shows how to build microservices and integrate IoT devices using standards such as MQTT, WebSockets, CoaP or REST. The last part of the session compares Project Flogo to other open source IoT projects like Node-RED and SaaS offerings such as AWS IoT.
Please use the Flogo community to discuss or ask questions:
https://community.tibco.com/products/project-flogo
Video recording of these slides:
https://youtu.be/-ThK6BZdoxw
9. Flogo Concepts to the End User
Trigger
Flow
Activity
Error Handler
Flogo App
One or more Flows
Flows
Activities + Transitions +
Optional error handler
Triggers
Starts those flows
15. Build Cloud-Native, Lightweight Microservices
• Public Cloud
• Containers on PaaS
• Serverless Architectures
Use Cases for Flogo
IoT Edge Applications
• Consumer IoT
• Industrial IoT
Initial Use Case Other Options
18. Comparison – Resource Requirements of IoT Integration Frameworks
Eclipse Kura Node-RED Flogo
VM JVM JavaScriptV8 Golang
Base Disk Space 59 MB 56 MB ~ 0 MB
Base Runtime Memory ~ 170 MB (with Open JDK)
~ 20 MB (with Oracle Embedded Java)
> 50 MB ~ 5 MB
Startup time Slow (~8 sec) Slow (~5 sec) Fast (~1 sec)
Application Build Slow Not Applicable Fast (~2 secs)
19. Flogo Repositories on Github
flogo-lib
Core libraries.
flogo-services
Backing services required by Flogo for flow
and state management.
flogo-contrib
Flogo extensions available out of the box, like
triggers or activities.
flogo-cli
A command line tool to build Flogo apps.
https://github.com/TIBCOSoftware/flogo
(very permissive open source BSD license)
Flogo Web Designer available for free as Docker Image
28. Outlook: Flogo Nanoservices on Microcontrollers
Flogo nanoservices that target
microcontrollers like ARM M0
Offload I/O centric compute
farther off to the edge.