Building a Simple Furnace App

We'll create an app to receive a webhook from a Support Ticket system when a ticket is created, take the ticket information, pass it through a series of operations including sentiment analysis and finally create a Slack message if there is negative sentiment.

First, some setup

Ensure you have at least Node 10 installed on your computer and then install the Furnace CLI.

~ $ npm install @project-furnace/cli -g

Create your Furnace environment

To get us up and running quickly we can skip installing the CI/CD components.

~ $ furnace ignite --no-bootstrap

Initialize a new Furnace Stack

A Stack is an application or a grouping of related components.

~ $ furnace new demo-stack

Create a new Source

The entry point to a Furnace flow is a Source. It can be a Stream, Timer or Rest API.

~ $ furnace create source new-ticket-hook --type restapi

Create a new Tap

A Tap reads from the Source, translates the request and pushes data into a Pipeline.

~ $ furnace create tap process-ticket-hook --source new-ticket-hook

Create a new Pipeline

A Pipeline is a sequential flow of operations we call Functions.

~ $ furnace create pipeline process-ticket --functions add-sentiment,core/slack-message

We have two Functions, add-sentiment is created within the Stack and slack-message is referenced from the core repository, a library of pre-baked functions and components.

Deploy the Stack

Furnace allows you to deploy quickly to a sandbox environment whilst in development.

~ $ furnace deploy sandbox