Libraries

The Eventide toolkit is made of the following libraries:

Top Level Libraries

eventide-postgres

Event-Oriented Autonomous Services Toolkit for Postgres
github.com/eventide-project/eventide-postgres

Core Libraries

messaging

Common primitives for platform-specific messaging implementations
github.com/eventide-project/messaging

message_store

Common primitives for platform-specific message store implementations
github.com/eventide-project/message-store

entity_projection

Projects event data into an entity
github.com/eventide-project/entity-projection

entity_store

Store of entities that are projected from streams
github.com/eventide-project/entity-store

entity_cache

Cache of entities retrieved by an entity-store, with in-memory temporary and on-disk permanent storage options
github.com/eventide-project/entity-cache

consumer

Maintains a long running subscription to an event stream
github.com/eventide-project/consumer

component_host

Host components inside a single physical process
github.com/eventide-project/component-host

view_data-commands

Message schemas for data-oriented command streams used to populate view databases
github.com/eventide-project/view-data-commands

Postgres Libraries

messaging-postgres

Implementation of messaging primitives for Postgres
github.com/eventide-project/messaging-postgres

message_store-postgres

Message store implementation for Postgres
github.com/eventide-project/message-store-postgres

entity_snapshot-postgres

Projected entity snapshotting for Postgres
github.com/eventide-project/entity-snapshot-postgres

consumer-postgres

Consumer implementation for Postgres
github.com/eventide-project/consumer-postgres

command_line-component_generator

Command line project generator for components built using the Postgres implementation
github.com/eventide-project/command-line-component-generator

view_data-pg

Populate Postgres view databases from event streams
github.com/eventide-project/view-data-pg

Utility Libraries

attribute

Define an attribute on a class using an imperative API
github.com/eventide-project/attribute

schema

Primitives for schema and structure
github.com/eventide-project/schema

dependency

Declare dependencies that have null object or substitute default values
github.com/eventide-project/dependency

identifier-uuid

UUID identifier generator with support for dependency configuration for real and null object implementations
github.com/eventide-project/identifier-uuid

initializer

Generates initializers and attributes
github.com/eventide-project/initializer

settings

Settings data access and assignment
github.com/eventide-project/settings

log

Logging to STD IO with levels, tagging, and coloring
github.com/eventide-project/log

transform

Common interface for object and format transformation, and transformer discovery
github.com/eventide-project/transform

telemetry

In-process telemetry based on observers
github.com/eventide-project/telemetry

try

Attempt an execution, and determine its success
github.com/eventide-project/try

retry

Retry an execution that terminates with an error, with optional backoff cycles
github.com/eventide-project/retry

cycle

Generalized retry
github.com/eventide-project/cycle

casing

Convert the case of strings, symbols, and hash keys, including camelCase, PascalCase, and underscore_case
github.com/eventide-project/casing

validate

Interface and protocol for validating and validation discovery
github.com/eventide-project/validate

set_attributes

Set an object's attributes from a hash or an object that implements to_h
github.com/eventide-project/set-attributes

clock

Clock interface with support for dependency configuration for real and null object implementations
github.com/eventide-project/clock

subst_attr

Declare attributes that have default implementations that are substitutes or null objects
github.com/eventide-project/subst-attr

virtual

Virtual method declaration
github.com/eventide-project/virtual

reflect

Reflection of inner namespaces used for protocol discovery
github.com/eventide-project/reflect

async_invocation

Return value for async method that is accidentally invoked synchronously
github.com/eventide-project/async-invocation

configure

Generates class level configure methods
github.com/eventide-project/configure

collection

Type-checked set
github.com/eventide-project/collection

Third Party Libraries

pg

Ruby interface to the PostgreSQL RDBMS
github.com/ged/ruby-pg

ntl-actor

Implementation of actor pattern for Ruby
github.com/ntl/actor

hashie

Your friendly neighborhood hash library
github.com/intridea/hashie

terminal_colors

Apply ANSI terminal colors to strings
github.com/ntl/terminal-colors

thread_safe

Thread-safe collections and utilities for Ruby
github.com/ruby-concurrency/thread_safe

naught

Naught is a toolkit for building Null Objects
github.com/avdi/naught

tzinfo

Daylight savings aware timezone library
github.com/tzinfo/tzinfo

test_bench

A frugal test framework for Ruby
github.com/ntl/test-bench