Coder Social home page Coder Social logo

bpodg / bondy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bondy-io/bondy

0.0 0.0 0.0 10.5 MB

Bondy is an open source, always-on and scalable application networking platform for modern architectures. It is an all-in-one event and service mesh that offers both Publish-Subscribe (PubSub) and routed Remote Procedure Calls (RPC). Bondy implements the open Web Application Messaging Protocol (WAMP) and is written in Erlang.

License: Apache License 2.0

Makefile 0.19% Erlang 92.58% Shell 0.09% HTML 6.70% JavaScript 0.10% Dockerfile 0.34%

bondy's Introduction

Bondy logo

License Architecture Version
Docker Pulls GitHub Workflow Status (branch) GitHub Workflow Status (branch)

Bondy

The distributed application networking platform

Bondy is an open source, always-on and scalable application networking platform for modern distributed architectures. It is an all-in-one event and service mesh with support for multiple communication patterns, multiple protocols and secure multi-tenancy.

Bondy implements the open Web Application Messaging Protocol (WAMP) offering both Publish and Subscribe (PubSub) and routed Remote Procedure Calls (RPC) communication patterns.

drawing

Documentation

For our work-in-progress documentation go to http://docs.getbondy.io.

Quick Start

Docker

The fastest way to get started is by using our official docker images.

  1. Make sure you have Docker installed and running.
  2. Download the examples/custom_config folder to a location of your choice, then cd to that location and run the following command (If you already cloned the Bondy repository then just cd to the location of the repo).
docker run \
--rm \
-e [email protected] \
-e BONDY_ERL_DISTRIBUTED_COOKIE=bondy \
-u 0:1000 \
-p 18080:18080 \
-p 18081:18081 \
-p 18082:18082 \
-p 18083:18083 \
-p 18084:18084 \
-p 18085:18085 \
-v "$(PWD)/examples/custom_config/etc:/bondy/etc" \
-v "/tmp/data:/bondy/data" \
leapsight/bondy:master

Building from source

Requirements

Building

Clone this repository and cd to the location where you cloned it.

To generate a Bondy release to be used in production execute the following command which will generate a tarball containing the release at $(PWD)/_build/prod/rel/.

rebar3 as prod tar

Untar and copy the resulting tarball to the location where you want to install Bondy e.g. ~/tmp/bondy.

tar -zxvf _build/prod/rel/bondy-1.0.0-beta.28.tar.qz -C ~/tmp/bondy

Running

To run Bondy, cd to the location where you installed it e.g. ~/tmp/bondy and run the following command which will print all the options.

bin/bondy

For example, to run Bondy with output to stdout do

bin/bondy foreground

And to run Bondy with an interactive Erlang shell do

bin/bondy console

Local cluster testing

Run a first node

We will start a node named [email protected] which uses the following variables from the config file (config/test/node_1_vars.config).

Transport Description Port
HTTP REST API GATEWAY 18080
HTTP REST API GATEWAY 18083
HTTP REST Admin API 18081
HTTPS REST Admin API 18084
Websockets WAMP 18080
TCP WAMP Raw Socket 18082
TLS WAMP Raw Socket 18085
make node1

Create a Realm

WAMP is a session-based protocol. Each session belongs to a Realm.

curl -X "POST" "http://localhost:18081/realms/" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -H 'Accept: application/json; charset=utf-8' \
     -d $'{
  "uri": "com.myrealm",
  "description": "My First Realm"
}'

Disable Security

We will disable security to avoid setting up credentials at this moment.

curl -X "DELETE" "http://localhost:18081/realms/com.myrealm/security_enabled" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -H 'Accept: application/json; charset=utf-8'

Run a second node

We start a second node named [email protected] which uses the following variables from the config file (config/test/node_2_vars.config).

Transport Description Port
HTTP REST API GATEWAY 18180
HTTP REST API GATEWAY 18183
HTTP REST Admin API 18181
HTTPS REST Admin API 18184
Websockets WAMP 18180
TCP WAMP Raw Socket 18182
TLS WAMP Raw Socket 18185
make node2

After a minute the two nodes will automatically connect. From now on all new Bondy control plane state changes will be propagated in real-time through broadcasting. One minute after joining the cluster, the Active Anti-entropy service will trigger an exchange after which the Realm we have created in [email protected] will have been replicated to [email protected].

Run a third node

make node3

Resources


Copyright by Leapsight, material licensed under the CC-BY-SA 4.0, provided as-is without any warranties, Bondy documentation (http://docs.getbondy.io).

bondy's People

Contributors

aramallo avatar jbucar avatar linthar avatar alan-ls avatar frepond avatar jopie64 avatar alejandro-miguez avatar

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.