Giter Site home page Giter Site logo

teamfairmont / boltengine Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 2.0 8.72 MB

The open source Bolt engine is the heart of Fairmont, and provides a scalable API framework builder. Documentation can be found here: https://docs.google.com/document/d/1lLQj5bPhtF5qB0U5MI9Wh72BNCVWznxiYe-WrRNZ_pc/edit?usp=sharing

License: Mozilla Public License 2.0

Go 100.00%

boltengine's Introduction

Bolt Engine

The open source Bolt Engine is a scalable API builder that uses an AMQP-compatible server to distribute and coordinate tasks to workers in any programming language. It provides a common authentication mechanism and input / output format that allows many disparate systems to be seamlessly integrated and exposed to API consumer applications. By providing performance contracts, worker stubs, failure models, and built-in documentation, the Bolt Engine enables application developers to rapidly create both frontend and backend in parallel with the knowledge that their application will scale well and utilize the same access patterns no matter what systems the backend utilizes. Documentation can be found here: https://docs.google.com/document/d/1lLQj5bPhtF5qB0U5MI9Wh72BNCVWznxiYe-WrRNZ_pc/edit?usp=sharing

Screenshots

api docs screenshot

debug form screenshot

Quickstart

These instructions assume you already have a GoLang install configured in a Linux environment.

Install git, and download the bolt releases, and install RabbitMQ

# Install Git
sudo yum install git

# Download the bolt releases
mkdir ~/go/src/github.com/TeamFairmont -p
cd ~/go/src/github.com/TeamFairmont

git clone https://github.com/TeamFairmont/boltshared
git clone https://github.com/TeamFairmont/boltengine
cd boltshared
go get ./...
cd ../boltengine
go get ./…

# Install RabbitMQ, start it, and enable it on boot
sudo yum install rabbitmq-server cyrus-sasl-devel
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server.service

Run the API

cd ~/go/src/github.com/TeamFairmont/boltengine
go run api.go

# In a web browser, visit http://localhost:8888/docs
# Press ctrl-C to stop running the API.
# See the Documentation section below for detailed instructions on building the API to a binary executable and running as a service.

Create a custom configuration

sudo mkdir /etc/bolt
sudo cp ~/go/src/github.com/TeamFairmont/boltengine/etc/bolt/config.json /etc/bolt/
# Edit the contents of /etc/bolt/config.json
# The API will read use the custom configuration the next time it is run. 
# See the Documentation section below for detailed instructions on configuring the engine.  

Create workers

See boltsdk's readme for instructions and sample code using Bolt's Go SDK. https://github.com/TeamFairmont/boltsdk-go

cd ~/go/src/github.com/TeamFairmont
go get github.com/TeamFairmont/boltsdk-go/boltsdk

Documentation

Additional documentation can be found here: https://docs.google.com/document/d/1lLQj5bPhtF5qB0U5MI9Wh72BNCVWznxiYe-WrRNZ_pc/edit?usp=sharing

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.