GoCollaborate

Philosophy

This guide’s purpose is to explain the fundamental model when using GoCollaborate framework. GoCollaborate is a light-weight web framework that allows you to develop quick, simple solutions for high-responsive data processing applications.

The official guides assumes intermediate level knowledge of Golang. If you are very new to this programming language, it might be better to follow the tutorial from Golang website before jumping right into the framework as your first step.

Features

Self-Contained

As opposed to other traditional MapReduce applications, each Job instance in GoCollaborate is considered an endpoint mapped to HTTP request, where it is then sorted by a sequence of Stage(s) consisting of a set of Task to be executed. Each Job is an self-contained runner that consumes network requests and process user-specified codes to compute a result, hence there's no extra dependencies of other distributed computing tools or libraries the application requires.

Easy-to-Launch

GoCollaborate is designed to be compatible with mainstream cloud platforms such as AWS, Azure and AliCloud, the compiled binary application itself will only take 10-100 mega bytes, which makes it adaptable to a wider range of cloud hosts or virtual machines.

Highly-Integrated

GoCollaborate aims at providing a suite of minimal tools that can bootstrap developers to develop their own applications as per specific business. More supported features could be found in the API section.

Real-Time Monitoring

With the integration of GoCollaborate UI, developers no longer bother with the compatibility issues between third party tools and their custom dashboard; get API dynamics at real time by simply keying localhost:8080.

Language Independent

With version 0.4.x or above, GoCollaborate project has been upgraded to Google gRPC framework which transports the messages via Protocol Buffer. This feature also enables community to create third-party clients in a variety of programming languages compliant to the gRPC specification and perfectly cooperates with the existing framework.


These features become very useful when small businesses are launching up their first distributed-computing application without an in-depth knowledge or too much physical resources to rely on.


Applicable Scenarios

Although GoCollaborate is designed for parallel computation of large-scale data set, there are a few typical scenarios that has been proved to perfectly suit the use of GoCollaborate:

  • Energy Monitoring Application
  • IoT Application
  • Financial Trading Application
  • Other highly-customizable computational scenarios

Contribution

This project is currently under development, please feel free to fork it and create any pull request!



results matching ""

    No results matching ""