ComponentsΒΆ

A Wishbone service consists out of a combination of different components. Wishbone has 3 component types:

Components are referred to with a unique name written in dotted format:

<namespace>.<component type>.<category>.<name>

namespace is a logical grouping for components. The wishbone namespace indicates the component is an one part of the default Wishbone installation or the Wishbone project. If you develop additional components outside of the Wishbone project itself, it is advised to do so in its dedicated namespace.

component type, category and name further categorize the the components into logical groupings.

Each component has an entrypoint so it can be referred to from a bootstrap file or referred to using wishbone.componentmanager.ComponentManager.getComponentByName(). The default Wishbone entrypoints are defined in its setup.py file. A component entrypoint is the same as the component name.

An overview of available components can be viewed by using the list command:

Tip

By default, the Wishbone executable includes the wishbone_contrib and wishbone_external into its searchpath when searching for available modules.

$ wishbone list
          __       __    __
.--.--.--|__.-----|  |--|  |--.-----.-----.-----.
|  |  |  |  |__ --|     |  _  |  _  |     |  -__|
|________|__|_____|__|__|_____|_____|__|__|_____|
                                   version 3.0.0

Build composable event pipeline servers with minimal effort.


Available components:
+-----------+----------------+----------+----------------+---------+-------------------------------------------------------------------------+
| Namespace | Component type | Category | Name           | Version | Description                                                             |
+-----------+----------------+----------+----------------+---------+-------------------------------------------------------------------------+
|           |                |          |                |         |                                                                         |
| wishbone  | protocol       | decode   | dummy          |   3.0.0 | A dummy decoder.                                                        |
|           |                |          | json           |   3.0.0 | Decode JSON data into a Python data structure.                          |
|           |                |          | msgpack        |   3.0.0 | Decode MSGpack data into a Python data structure.                       |
|           |                |          | plain          |   3.0.0 | Decode text data into a Python data structure.                          |
|           |                |          |                |         |                                                                         |
|           |                | encode   | dummy          |   3.0.0 | A dummy encoder.                                                        |
|           |                |          | json           |   3.0.0 | Encode data into JSON format.                                           |
|           |                |          | msgpack        |   3.0.0 | Encode data into msgpack format.                                        |
|           |                |          |                |         |                                                                         |
|           | function       | module   | append         |   3.0.0 | Adds <data> to the array <destination>.                                 |
|           |                |          | lowercase      |   3.0.0 | Puts the desired field in lowercase.                                    |
|           |                |          | set            |   3.0.0 | Sets a field to the desired value.                                      |
|           |                |          | uppercase      |   3.0.0 | Puts the desired field in uppercase.                                    |
|           |                |          |                |         |                                                                         |
|           |                | template | choice         |   3.0.0 | Returns a random element from the provided array.                       |
|           |                |          | cycle          |   3.0.0 | Cycles through the provided array returning the next element.           |
|           |                |          | epoch          |   3.0.0 | Returns epoch with sub second accuracy as a float.                      |
|           |                |          | pid            |   3.0.0 | Returns the PID of the current process.                                 |
|           |                |          | random_bool    |   3.0.0 | Randomly returns True or False                                          |
|           |                |          | random_integer |   3.0.0 | Returns a random integer.                                               |
|           |                |          | random_uuid    |   3.0.0 | Returns a uuid value.                                                   |
|           |                |          | random_word    |   3.0.0 | Returns a random word.                                                  |
|           |                |          | regex          |   3.0.0 | Regex matching on a string.                                             |
|           |                |          | strftime       |   3.0.0 | Returns a formatted version of an epoch timestamp.                      |
|           |                |          |                |         |                                                                         |
|           | module         | flow     | acknowledge    |   3.0.0 | Forwards or drops events by acknowleding values.                        |
|           |                |          | count          |   3.0.0 | Pass or drop events based on the number of times an event value occurs. |
|           |                |          | fanout         |   3.0.0 | Forward each incoming message to all connected queues.                  |
|           |                |          | fresh          |   3.0.0 | Generates a new event unless an event came through in the last x time.  |
|           |                |          | funnel         |   3.0.0 | Funnel multiple incoming queues to 1 outgoing queue.                    |
|           |                |          | queueselect    |   3.0.0 | Submits message to the queue defined by a rendered template.            |
|           |                |          | roundrobin     |   3.0.0 | Round-robins incoming events to all connected queues.                   |
|           |                |          | switch         |   3.0.0 | Switch outgoing queues while forwarding events.                         |
|           |                |          |                |         |                                                                         |
|           |                | input    | cron           |   3.0.0 | Generates an event at the defined time                                  |
|           |                |          | generator      |   3.0.0 | Generates an event at the chosen interval.                              |
|           |                |          | inotify        |   3.0.0 | Monitors one or more paths for inotify events.                          |
|           |                |          |                |         |                                                                         |
|           |                | output   | null           |   3.0.0 | Purges incoming events.                                                 |
|           |                |          | stdout         |   3.0.0 | Prints incoming events to STDOUT.                                       |
|           |                |          | syslog         |   3.0.0 | Writes log events to syslog.                                            |
|           |                |          |                |         |                                                                         |
|           |                | process  | modify         |   3.0.0 | Modify and manipulate datastructures.                                   |
|           |                |          | pack           |   3.0.0 | Packs multiple events into a bulk event.                                |
|           |                |          | template       |   3.0.0 | Renders Jinja2 templates.                                               |
|           |                |          | unpack         |   3.0.0 | Unpacks bulk events into single events.                                 |
|           |                |          |                |         |                                                                         |
+-----------+----------------+----------+----------------+---------+-------------------------------------------------------------------------+