xbus

module
v0.0.0-...-cdef871 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2023 License: MIT

README

.. highlight:: shell

.. _README:

====
Xbus
====

.. image:: https://img.shields.io/badge/license-MIT-blue.svg
    :target: https://orus.io/xbus/xbus/raw/branch/default/LICENSE
    :alt: License

Xbus provides high-level application messaging on top of `NATS`_.


Requirements
============

Golang
------

This is a `Go`_ project. We build and test xbus with go 1.13.x

Postgresql
----------

Xbus uses a `postgresql`_ database 9.5+ to serialize configuration and events.

Build
=====

Build as a regular `Go`_ package::

    make devtools
    make install

Build from the source package
-----------------------------

Make sure the 'go' found in the PATH is go 1.13 and its GOROOT/GOPATH are
properly test.

Extract the xbus sources, and build:

.. code-block:: bash

   tar xf xbus-3.1.*.tar*

   cd xbus-3.1*

   make install

   # optionally run the tests:
   # make test POSTGRES_DSN="dbname=xbus-tests user=xbus password=xbus sslmode=disable"
   make doc dist


Running
=======

5 binaries are created:

- :ref:`xbusd <xbusd>`: Main Xbus program.

- :ref:`xbusctl <xbusctl>`: Xbus administration program (ctl = "control");
  remotely connects to :ref:`xbusd <xbusd>`.

- :ref:`xbus-client <xbus-client>`: Default xbus client. Provides demo actors
  and tooling to administration a client account.

- :ref:`xbus-http <xbus-http>`: The Xbus HTTP gateway.

- :ref:`xbus-fullenv <xbus-fullenv>`: A dev/test utility that build complete
  xbus path from a single yaml file.

Each program may be run with ``--help`` to see available commands / flags / etc.

Warning: `xbusd <xbusd>` can produce a LOT of logs when placed under load.

The server will crash if it is unable to write to stdio/stderr.
Init systems that implement rate limitation for logs (such as `systemd`) may
cause `xbusd <xbus>` to crash if the server exceeds this limit.

Updating
========

- The ``migration`` directory contains scripts one can use to migrate Xbus
  databases from one version to the other.

- The ``migration`` directory contains scripts one can use to migrate Xbus
  databases from one version to the other.

- Run ``xbusd migrate`` to migrate Xbus databases from one version to the other.

.. _Go: https://golang.org/
.. _NATS: https://nats.io/
.. _postgresql: https://www.postgresql.org/

Directories

Path Synopsis
cmd
Package migration generated by go-bindata.// sources: scripts/0001_initial_database.up.sql scripts/0002_add_account_origin.down.sql scripts/0002_add_account_origin.up.sql scripts/0003_rename_graph_to_pipeline.down.sql scripts/0003_rename_graph_to_pipeline.up.sql scripts/0004_add_job_envelope.up.sql scripts/0005_change_actor_column_column_size.down.sql scripts/0005_change_actor_column_column_size.up.sql scripts/0006_drop_log_entry_fkeys.up.sql scripts/0007_log_message_to_blob.up.sql scripts/0008_enable_pgcrypto.up.sql scripts/0009_add_indexes.up.sql scripts/0010_password_storage.up.sql scripts/0011_add_envelope_eventids.up.sql scripts/0012_process_state_response.up.sql scripts/0013_process_state_response_ack.up.sql scripts/0014_add_session_table.up.sql scripts/0015_add_indexes.up.sql scripts/0016_process_replay.up.sql scripts/0017_utc_times.up.sql scripts/0018_process_log_entry_index.up.sql scripts/0019_job_fields.up.sql scripts/0020_envelope_storage_ng.up.sql scripts/0021_pipeline_sourcematch_by_actor.up.sql scripts/0022_route_index.up.sql
Package migration generated by go-bindata.// sources: scripts/0001_initial_database.up.sql scripts/0002_add_account_origin.down.sql scripts/0002_add_account_origin.up.sql scripts/0003_rename_graph_to_pipeline.down.sql scripts/0003_rename_graph_to_pipeline.up.sql scripts/0004_add_job_envelope.up.sql scripts/0005_change_actor_column_column_size.down.sql scripts/0005_change_actor_column_column_size.up.sql scripts/0006_drop_log_entry_fkeys.up.sql scripts/0007_log_message_to_blob.up.sql scripts/0008_enable_pgcrypto.up.sql scripts/0009_add_indexes.up.sql scripts/0010_password_storage.up.sql scripts/0011_add_envelope_eventids.up.sql scripts/0012_process_state_response.up.sql scripts/0013_process_state_response_ack.up.sql scripts/0014_add_session_table.up.sql scripts/0015_add_indexes.up.sql scripts/0016_process_replay.up.sql scripts/0017_utc_times.up.sql scripts/0018_process_log_entry_index.up.sql scripts/0019_job_fields.up.sql scripts/0020_envelope_storage_ng.up.sql scripts/0021_pipeline_sourcematch_by_actor.up.sql scripts/0022_route_index.up.sql
core
Package core provides the 'core' service, which must be started once and only once in every server process
Package core provides the 'core' service, which must be started once and only once in every server process
sentrycapture
Package sentrycapture provides the 'core' service, which must be started once and only once in every server process
Package sentrycapture provides the 'core' service, which must be started once and only once in every server process
sql

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL