Routemaster Client v0.3.0 API Reference

Modules

A persistent cache that survives application restarts, backed by Redis

Centralized access to the client configuration

The Director module provides functions to interact with the Routemaster event bus REST API. It’s a client and each function will perform an authenticated HTTP request to the even bus server

The foundation of a Drain app

An event received by the drain

A Plug to receive events over HTTP

Removes duplicates by URL and type from the current payload and only preserves the most recent event

This drain plug iterates through the list of event payloads in conn and, for each one, starts a supervised Task to fetch the data asynchronously

Drops stale events from the current payload to only include events that reflect an entity state that is more recent than previously received events

Drain plug to declare listener modules that will be notified of the received events. Listeners must implement the call/1 function, that will be invoked with a list of Routemaster.Drain.Event structures as argument

Allows to pluck events for one or more topics and remove them from the current payload. The removed β€” siphoned β€” events are sent to a siphon module that must implement the call/1 function, that will be invoked with a list of Routemaster.Drain.Event structures as argument

A dummy service to help in development

API client to fetch resources linked to from the events

Response caching middleware

Service authentication middleware

Dynamic base URL middleware

Dynamic Basic authentication middleware

A reimplementation of the default Tesla.Middleware.Logger (source)

Authenticates event delivery requests from the bus server to the Drain app

Parses the request bodies of incoming event delivery requests to extract the event list payloads

This should be the first plug to quickly reject requests other than POST /

This simply returns 204, the expected response for a Drain app

Publishes events to the event bus

An event to be published to the bus

This is the main interface to Redis, and it implements two functions to get a reference to the two Redis stores: the persistent data store and the cache store

This module provides access to the cache Redis

This module provides access to the persistent data store Redis

Utility functions to validate topic names

Utility functions