SlideShare a Scribd company logo
Building Serverless Apps with Go & SAM
( @LeonStigter)
Confidentiality
The following information is confidential information of TIBCO
Software Inc. Use, duplication, transmission, or republication for
any purpose without the prior written consent of TIBCO is
expressly prohibited.
Disclaimer
This document (including, without limitation, any product roadmap or
statement of direction data) illustrates the planned testing, release and
availability dates for TIBCO products and services. This document is provided
for informational purposes only and its contents are subject to change without
notice. TIBCO makes no warranties, express or implied, in or relating to this
document or any information in it, including, without limitation, that this
document, or any information in it, is error-free or meets any conditions of
merchantability or fitness for a particular purpose. This document may not be
reproduced or transmitted in any form or by any means without our prior
written permission.
The material provided is for informational purposes only, and should not be
relied on in making a purchasing decision. The information is not a
commitment, promise or legal obligation to deliver any material, code, or
functionality. The development, release, and timing of any features or
functionality described for our products remains at our sole discretion.
During the course of this presentation TIBCO or its representatives may make
forward-looking statements regarding future events, TIBCO’s future results or
our future financial performance. These statements are based on
management’s current expectations. Although we believe that the expectations
reflected in the forward-looking statements contained in this presentation are
reasonable, these expectations or any of the forward-looking statements could
prove to be incorrect and actual results or financial performance could differ
materially from those stated herein. TIBCO does not undertake to update any
forward-looking statement that may be made from time to time or on its
behalf.
•Developer Advocate at
TIBCO
•Passionate about Open
Source, Cloud, Containers
and Serverless
•I love cheesecake, dad
jokes, and APIs
Leon Stigter, Developer Advocate
( @LeonStigter)
Who Am I?
Once Upon A Time...
This Was/Is Your Data Center
…Transforming data
into action…
To spot and seize
opportunities from the ever
increasing volumes of data
and devices
…Operating with
more speed and
agility…
To meet stakeholder
demands for delivering
rapid innovation and
differentiation
…Empowering
more users…
To become self-sufficient at
helping the business with
digital transformation
efforts
Why Do We Build Apps?
ArchitectsIT ManagersIntegratorsDevelopers
Data Scientists Analysts Analytics Leaders Business Leaders
Your Apps Matter!
ESB
…From building and
connecting monolithic
applications to each other…
App App App
…To also becoming the infrastructure on which modern
applications are built, with API and event-driven
microservices patterns, to support digital transformation
needs
Technically the strategy must “integrate integration” and
blur the lines between development and integration
-Randy Heffner, Forrester Research
Service Service
Service
API
EVENT
API
EVENT
API
API
“App”
Function
Function
The Way We Build Apps Is Changing
Source https://info.leanix.net/hubfs/leanIX_Microservices-Study.pdf
Challenges To Adopt New Tech
“...among those having implemented REST APIs, only 25% say that all or nearly all of them
are designed as entirely CRUD APIs, which shows that many organizations feel the need to go
against the religion.”
“...among development managers with internal APIs, 23% said they have important use cases,
where one call to an API must update multiple applications.”
Microservices enable use cases beyond simple point-to-point CRUD
“Among development managers who said that changing their business model was likely
to be a critical or high business priority, 62% already have
microservices or plan to have them by early 2018.”
Source: Forrester Research
Microservices and External APIs Underpin Digital Business (Oct 17, 2017)
“Dynamic Cloud” Deployment Growth
• More enterprise
strategic workloads
are now run in the
cloud than on-premise
• The highest workload
% is using “Dynamic
Cloud”; FaaS and
Serverless technology
Source: The New Stack, 2017 Survey
Likely This Is Your Datacenter…
So…
Let’s recap for a second…
• If you’re building apps…
• And everyone is building apps with you…
• And we’re breaking down monoliths…
• And we’re moving to the cloud…
• And change is really, really hard…
In That Case There Is Only One
Solution…
NEVER MANAGE SERVERS
Let’s Talk Serverless…
Scales with usage
Never pay for idle
No servers to provision
Or manage
Availability and
Fault-tolerance built in
Reuse some standard building blocks
Amazon API
Gateway
Amazon SQS
Amazon
DynamoDB
Amazon
Kinesis
Amazon S3
Amazon SNS
Let’s Talk Serverless…
Project Flogo
Open Source Stack for Event-Driven Apps
Build smarter with Edge
Machine Learning
10-50x lighter than
Java, .NET or Node.js
Visually model & test
flows as functions
Event-driven design
with native support for
AWS Lambda
100% Open Source with
zero lock-in
What Is Project Flogo?
If your background is in or you
prefer to develop your apps
using zero-coding
environments.
Flogo Web UI is available via
Docker Hub or Flogo.io.
It contains everything required
to get started in seconds!
Who Is Project Flogo Meant For?
Getting started with the CLI
couldn't be any easier:
go get -u
github.com/TIBCOSoftware/f
logo-cli/...
Or
go get -u
github.com/TIBCOSoftware/f
logo-lib/...
Who Is Project Flogo Meant For?
Java, NodeJS are great, but too large for resource constrained environments
Why Golang for Project Flogo:
➢ Complies natively and runs natively.
➢ Only the required dependencies are built into the application.
➢ Static linking enables zero OS dependencies.
App
Framework (OSGi)
VM (JVM)
Operating System
Hardware
App
Framework (Node.js)
VM (V8)
Operating System
Hardware
App
Operating System
Hardware
But Why Go?
The Basics of Project
Flogo
➢ At its core, flogo is an event-driven
framework
➢ The intent is for the event sources
(Triggers) and Actions to be pluggable
contributions
➢ The Web-UI uses the FlowAction
The Basics of Project
Flogo
Image from https://www.youtube.com/watch?v=r7lMGPM3u9E
Event
Stream
Kafka
Triggers: Kafka,
REST, MQTT,
etc…
Triggers
Trigger
Listens to events for a particular source
(ex. HTTP on port 8080, a MQTT
server)
Handler
➢ Associate events with actions
➢ Is configured to dispatch based on
settings (ex. HTTP: Method and path,
MQTT : topic)
➢ Basically an “action” to perform on
receiving the event
➢ Can be simple go code which
implements the Action interface
➢ Contributed Actions, such as the
FlowAction used by our UI
Event
Stream
Kafka
Triggers: Kafka,
REST, MQTT,
etc…
Flow
Golang Package
Actions
Actions
Event
Stream
Kafka
Triggers: Kafka,
REST, MQTT,
etc…
Action
(Flow)
Activity
Activities
Activity
➢ Similar to Action, but intended to be
closer to a simple function call
➢ Can be used as a way to compose an
Action like flow does
➢ Activities are connected via ‘links’
Building serverless apps with Go & SAM
Low friction web-native UX
➢ Express app logic using rich
flows, not just data or
request pipelines
➢ Inline data transformations
➢ Built-in web-based debugger
➢ Build for target platform
directly from UI
➢ Available on Docker Hub or
Flogo.io
How To Build an App? We Have a UI
➢ Wraps all common commands for building
Flogo applications
➢ Wrapper around go `dep` and `go` cli
➢ Parses DSL for
➢ dependencies
➢ Importing req packages
➢ main.go
➢ embedding app
How To Build an App? We Have a CLI
Let’s go
build
something!
I’m a developer, I
just want to write
code...
No UI
Shouldn’t require a UI or JSON
API driven
Must provide a simple API for
app composition and execution
Reuse concepts
Must allow users to use existing
triggers, actions and activities
Mix with Go
Should be easy to invoke custom
code in response to a event from
a trigger
Developer Experience: Flogo-as-a-Lib
func main() {
app := flogo.NewApp()
trg := app.NewTrigger(&rest.RestTrigger{}, map[string]interface{}{"port": 8080})
trg.NewFuncHandler(map[string]interface{}{"method": "GET", "path": "/blah"},
RunActivities)
e, err := flogo.NewEngine(app)
if err != nil {
logger.Error(err)
return
}
engine.RunEngine(e)
}
func RunActivities(ctx context.Context, inputs map[string]*data.Attribute)
(map[string]*data.Attribute, error) {
in := map[string]interface{}{"message": "test"}
_, err := flogo.EvalActivity(&log.LogActivity{}, in)
if err != nil {
return nil, err
}
return nil, nil
}
Use triggers & function
handlers
Call activities
So We Also Have a Go API!
Let’s go
build
something!
Q & A
github.com/TIBCOSoftware/flogo
$ docker run -it -p 3303:3303 flogo/flogo-docker eula-accept
Building via the CLI
$ go get github.com/TIBCOSoftware/flogo-cli
Getting Started with Project Flogo
Building serverless apps with Go & SAM

More Related Content

PDF
Serverless Evolution during 3 years of Serverless Toronto
PDF
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
PDF
Towards an API Commons
PPTX
Dev ops
PDF
Application Server-less Web Applications - Serverless Toronto Meetup Intro
PPTX
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
PDF
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
PDF
Sergii Bielskyi "Azure Logic App and building modern cloud native apps"
Serverless Evolution during 3 years of Serverless Toronto
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Towards an API Commons
Dev ops
Application Server-less Web Applications - Serverless Toronto Meetup Intro
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Sergii Bielskyi "Azure Logic App and building modern cloud native apps"

What's hot (20)

PPTX
Integration Monday - Logic Apps: Development Experiences
PPTX
Service fabric demo
PDF
Lunch & Learn BigQuery & Firebase from other Google Cloud customers
PPTX
Design Visualization: Smoke and Mirrors (slides)
PDF
Dynamic APIs: SOA Done Right
PDF
Building APIs in an easy way using API Platform
PDF
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
PDF
The future of the CMS
PDF
React with rails a perfect combination to build modern web application
PDF
Mete Atamel "An app modernization story with Cloud Run"
PPTX
Introduction to microservices
PPTX
Entwickler camp2012 how to connect your app to the activity stream with x_pages
PPS
Microservices with Nancy and vs Code
PPTX
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
PPTX
Chatbots Workshop SF JS Meetup May 2018
PDF
Ionic Native: Native-powered apps, without the hassle
PPTX
Connecting Your In-Premise Database To Mobile Apps
PDF
Microservices in Practice
PDF
Measure and Increase Developer Productivity with Help of Serverless at Server...
PPTX
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Integration Monday - Logic Apps: Development Experiences
Service fabric demo
Lunch & Learn BigQuery & Firebase from other Google Cloud customers
Design Visualization: Smoke and Mirrors (slides)
Dynamic APIs: SOA Done Right
Building APIs in an easy way using API Platform
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
The future of the CMS
React with rails a perfect combination to build modern web application
Mete Atamel "An app modernization story with Cloud Run"
Introduction to microservices
Entwickler camp2012 how to connect your app to the activity stream with x_pages
Microservices with Nancy and vs Code
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
Chatbots Workshop SF JS Meetup May 2018
Ionic Native: Native-powered apps, without the hassle
Connecting Your In-Premise Database To Mobile Apps
Microservices in Practice
Measure and Increase Developer Productivity with Help of Serverless at Server...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Ad

Similar to Building serverless apps with Go & SAM (20)

PDF
Project Flogo: An Event-Driven Stack for the Enterprise
PDF
Building a full-stack app with Golang and Google Cloud Platform in one week
PPTX
IT TRENDS AND PERSPECTIVES 2016
PDF
Designing Web Apis Building Apis That Developers Love Jin Brendasahni
PDF
PDF
12 factor app - Core Guidelines To Cloud Ready Solutions
PPTX
How APIs are Changing Software Development
PPT
Heroku for-team-collaboration
PPT
Heroku for team collaboration
PPTX
Huge: Running an API at Scale
PPTX
The-Future-of-Software-Development.Presentation
PPTX
The Open PaaS Stack
PPTX
UCCSC 2016
PDF
The 12 Factor App
PPTX
Disruptive Trends in Application Development
PDF
Server’s variations bsw2015
PDF
Comment choisir entre Parse, Heroku et AWS ?
PPTX
Introduction to GoLang
PPTX
API Zen for Developers
PDF
Open Source IoT Project Flogo - Introduction, Overview and Architecture
Project Flogo: An Event-Driven Stack for the Enterprise
Building a full-stack app with Golang and Google Cloud Platform in one week
IT TRENDS AND PERSPECTIVES 2016
Designing Web Apis Building Apis That Developers Love Jin Brendasahni
12 factor app - Core Guidelines To Cloud Ready Solutions
How APIs are Changing Software Development
Heroku for-team-collaboration
Heroku for team collaboration
Huge: Running an API at Scale
The-Future-of-Software-Development.Presentation
The Open PaaS Stack
UCCSC 2016
The 12 Factor App
Disruptive Trends in Application Development
Server’s variations bsw2015
Comment choisir entre Parse, Heroku et AWS ?
Introduction to GoLang
API Zen for Developers
Open Source IoT Project Flogo - Introduction, Overview and Architecture
Ad

More from Leon Stigter (20)

PDF
Thinking Stateful Serverless
PDF
Test driving event-driven apps on kubernetes with kind, tekton, and knative
PDF
Building Event-Driven Workflows with Knative and Tekton
PDF
Data Driven Decisions in DevOps
PDF
Every Talk Has To Be Unique @ DevRel Meetup
PPTX
Continuous Verification in a Serverless World
PDF
Continuous Verification in a Serverless World
PDF
Trusting Your Ingredients @DevOpsDays Columbus 2019
PDF
Refactoring to Modules - Why, How and Everything Else I Can Fit In 45 Minutes…
PDF
Refactoring to Modules - Why, How and Everything Else I Can Fit In 45 Minutes…
PDF
Trusting Your Ingredients - What Building Software And Cheesecake Have In Common
PDF
Building a Kubernetes Powered Central Go Modules Repository
PDF
Refactoring to Go modules: why and how
PDF
Persistence is futile (or is it?) - How to Manage, Version, and Promote Docke...
PDF
Data Driven DevOps
PDF
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & Codefresh
PDF
DevOps Theory vs. Practice: A Song of Ice and Tire Fire
PDF
The Art of Deploying Artifacts to Production With Confidence
PDF
Project Flogo: Serverless Integration, Powered by Flogo and Lambda
PDF
The Road to a Cloud-First Enterprise
Thinking Stateful Serverless
Test driving event-driven apps on kubernetes with kind, tekton, and knative
Building Event-Driven Workflows with Knative and Tekton
Data Driven Decisions in DevOps
Every Talk Has To Be Unique @ DevRel Meetup
Continuous Verification in a Serverless World
Continuous Verification in a Serverless World
Trusting Your Ingredients @DevOpsDays Columbus 2019
Refactoring to Modules - Why, How and Everything Else I Can Fit In 45 Minutes…
Refactoring to Modules - Why, How and Everything Else I Can Fit In 45 Minutes…
Trusting Your Ingredients - What Building Software And Cheesecake Have In Common
Building a Kubernetes Powered Central Go Modules Repository
Refactoring to Go modules: why and how
Persistence is futile (or is it?) - How to Manage, Version, and Promote Docke...
Data Driven DevOps
Where did my modules GO? Building and deploying Go Apps w/ GoCenter & Codefresh
DevOps Theory vs. Practice: A Song of Ice and Tire Fire
The Art of Deploying Artifacts to Production With Confidence
Project Flogo: Serverless Integration, Powered by Flogo and Lambda
The Road to a Cloud-First Enterprise

Recently uploaded (20)

PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
System and Network Administration Chapter 2
PDF
Understanding Forklifts - TECH EHS Solution
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Essential Infomation Tech presentation.pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
AI in Product Development-omnex systems
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Upgrade and Innovation Strategies for SAP ERP Customers
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Odoo Companies in India – Driving Business Transformation.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How to Migrate SBCGlobal Email to Yahoo Easily
Which alternative to Crystal Reports is best for small or large businesses.pdf
top salesforce developer skills in 2025.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
System and Network Administration Chapter 2
Understanding Forklifts - TECH EHS Solution
wealthsignaloriginal-com-DS-text-... (1).pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Essential Infomation Tech presentation.pptx
Design an Analysis of Algorithms II-SECS-1021-03
AI in Product Development-omnex systems
Adobe Illustrator 28.6 Crack My Vision of Vector Design

Building serverless apps with Go & SAM

  • 1. Building Serverless Apps with Go & SAM ( @LeonStigter)
  • 2. Confidentiality The following information is confidential information of TIBCO Software Inc. Use, duplication, transmission, or republication for any purpose without the prior written consent of TIBCO is expressly prohibited.
  • 3. Disclaimer This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. This document is provided for informational purposes only and its contents are subject to change without notice. TIBCO makes no warranties, express or implied, in or relating to this document or any information in it, including, without limitation, that this document, or any information in it, is error-free or meets any conditions of merchantability or fitness for a particular purpose. This document may not be reproduced or transmitted in any form or by any means without our prior written permission. The material provided is for informational purposes only, and should not be relied on in making a purchasing decision. The information is not a commitment, promise or legal obligation to deliver any material, code, or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion. During the course of this presentation TIBCO or its representatives may make forward-looking statements regarding future events, TIBCO’s future results or our future financial performance. These statements are based on management’s current expectations. Although we believe that the expectations reflected in the forward-looking statements contained in this presentation are reasonable, these expectations or any of the forward-looking statements could prove to be incorrect and actual results or financial performance could differ materially from those stated herein. TIBCO does not undertake to update any forward-looking statement that may be made from time to time or on its behalf.
  • 4. •Developer Advocate at TIBCO •Passionate about Open Source, Cloud, Containers and Serverless •I love cheesecake, dad jokes, and APIs Leon Stigter, Developer Advocate ( @LeonStigter) Who Am I?
  • 5. Once Upon A Time...
  • 6. This Was/Is Your Data Center
  • 7. …Transforming data into action… To spot and seize opportunities from the ever increasing volumes of data and devices …Operating with more speed and agility… To meet stakeholder demands for delivering rapid innovation and differentiation …Empowering more users… To become self-sufficient at helping the business with digital transformation efforts Why Do We Build Apps?
  • 8. ArchitectsIT ManagersIntegratorsDevelopers Data Scientists Analysts Analytics Leaders Business Leaders Your Apps Matter!
  • 9. ESB …From building and connecting monolithic applications to each other… App App App …To also becoming the infrastructure on which modern applications are built, with API and event-driven microservices patterns, to support digital transformation needs Technically the strategy must “integrate integration” and blur the lines between development and integration -Randy Heffner, Forrester Research Service Service Service API EVENT API EVENT API API “App” Function Function The Way We Build Apps Is Changing
  • 11. “...among those having implemented REST APIs, only 25% say that all or nearly all of them are designed as entirely CRUD APIs, which shows that many organizations feel the need to go against the religion.” “...among development managers with internal APIs, 23% said they have important use cases, where one call to an API must update multiple applications.” Microservices enable use cases beyond simple point-to-point CRUD “Among development managers who said that changing their business model was likely to be a critical or high business priority, 62% already have microservices or plan to have them by early 2018.” Source: Forrester Research Microservices and External APIs Underpin Digital Business (Oct 17, 2017)
  • 12. “Dynamic Cloud” Deployment Growth • More enterprise strategic workloads are now run in the cloud than on-premise • The highest workload % is using “Dynamic Cloud”; FaaS and Serverless technology Source: The New Stack, 2017 Survey
  • 13. Likely This Is Your Datacenter…
  • 14. So… Let’s recap for a second… • If you’re building apps… • And everyone is building apps with you… • And we’re breaking down monoliths… • And we’re moving to the cloud… • And change is really, really hard…
  • 15. In That Case There Is Only One Solution… NEVER MANAGE SERVERS
  • 16. Let’s Talk Serverless… Scales with usage Never pay for idle No servers to provision Or manage Availability and Fault-tolerance built in
  • 17. Reuse some standard building blocks Amazon API Gateway Amazon SQS Amazon DynamoDB Amazon Kinesis Amazon S3 Amazon SNS Let’s Talk Serverless…
  • 18. Project Flogo Open Source Stack for Event-Driven Apps Build smarter with Edge Machine Learning 10-50x lighter than Java, .NET or Node.js Visually model & test flows as functions Event-driven design with native support for AWS Lambda 100% Open Source with zero lock-in What Is Project Flogo?
  • 19. If your background is in or you prefer to develop your apps using zero-coding environments. Flogo Web UI is available via Docker Hub or Flogo.io. It contains everything required to get started in seconds! Who Is Project Flogo Meant For?
  • 20. Getting started with the CLI couldn't be any easier: go get -u github.com/TIBCOSoftware/f logo-cli/... Or go get -u github.com/TIBCOSoftware/f logo-lib/... Who Is Project Flogo Meant For?
  • 21. Java, NodeJS are great, but too large for resource constrained environments Why Golang for Project Flogo: ➢ Complies natively and runs natively. ➢ Only the required dependencies are built into the application. ➢ Static linking enables zero OS dependencies. App Framework (OSGi) VM (JVM) Operating System Hardware App Framework (Node.js) VM (V8) Operating System Hardware App Operating System Hardware But Why Go?
  • 22. The Basics of Project Flogo ➢ At its core, flogo is an event-driven framework ➢ The intent is for the event sources (Triggers) and Actions to be pluggable contributions ➢ The Web-UI uses the FlowAction
  • 23. The Basics of Project Flogo Image from https://www.youtube.com/watch?v=r7lMGPM3u9E
  • 24. Event Stream Kafka Triggers: Kafka, REST, MQTT, etc… Triggers Trigger Listens to events for a particular source (ex. HTTP on port 8080, a MQTT server) Handler ➢ Associate events with actions ➢ Is configured to dispatch based on settings (ex. HTTP: Method and path, MQTT : topic)
  • 25. ➢ Basically an “action” to perform on receiving the event ➢ Can be simple go code which implements the Action interface ➢ Contributed Actions, such as the FlowAction used by our UI Event Stream Kafka Triggers: Kafka, REST, MQTT, etc… Flow Golang Package Actions Actions
  • 26. Event Stream Kafka Triggers: Kafka, REST, MQTT, etc… Action (Flow) Activity Activities Activity ➢ Similar to Action, but intended to be closer to a simple function call ➢ Can be used as a way to compose an Action like flow does ➢ Activities are connected via ‘links’
  • 28. Low friction web-native UX ➢ Express app logic using rich flows, not just data or request pipelines ➢ Inline data transformations ➢ Built-in web-based debugger ➢ Build for target platform directly from UI ➢ Available on Docker Hub or Flogo.io How To Build an App? We Have a UI
  • 29. ➢ Wraps all common commands for building Flogo applications ➢ Wrapper around go `dep` and `go` cli ➢ Parses DSL for ➢ dependencies ➢ Importing req packages ➢ main.go ➢ embedding app How To Build an App? We Have a CLI
  • 31. I’m a developer, I just want to write code...
  • 32. No UI Shouldn’t require a UI or JSON API driven Must provide a simple API for app composition and execution Reuse concepts Must allow users to use existing triggers, actions and activities Mix with Go Should be easy to invoke custom code in response to a event from a trigger Developer Experience: Flogo-as-a-Lib
  • 33. func main() { app := flogo.NewApp() trg := app.NewTrigger(&rest.RestTrigger{}, map[string]interface{}{"port": 8080}) trg.NewFuncHandler(map[string]interface{}{"method": "GET", "path": "/blah"}, RunActivities) e, err := flogo.NewEngine(app) if err != nil { logger.Error(err) return } engine.RunEngine(e) } func RunActivities(ctx context.Context, inputs map[string]*data.Attribute) (map[string]*data.Attribute, error) { in := map[string]interface{}{"message": "test"} _, err := flogo.EvalActivity(&log.LogActivity{}, in) if err != nil { return nil, err } return nil, nil } Use triggers & function handlers Call activities So We Also Have a Go API!
  • 35. Q & A
  • 36. github.com/TIBCOSoftware/flogo $ docker run -it -p 3303:3303 flogo/flogo-docker eula-accept Building via the CLI $ go get github.com/TIBCOSoftware/flogo-cli Getting Started with Project Flogo