Packages

  • package root
    Definition Classes
    root
  • package com
    Definition Classes
    root
  • package cisco
    Definition Classes
    com
  • package streambed

    The base package of the Streambed library.

    The base package of the Streambed library. Of note is the com.cisco.streambed.Application suite of types. These types conveniently establish a streambed environment for an application.

    Sample usage from Java:

    /**
     * Bootstraps our application and handles signals
     */
    public class MyServerEntryPoints {
        private static ApplicationProcess applicationProcess = null;
    
        public static void main(String[] args) {
            applicationProcess = new ApplicationProcess(new MyServer());
            applicationProcess.main(args);
        }
    
        public static void trap(int signal) {
          if (applicationProcess != null) {
                applicationProcess.trap(signal);
            }
        }
    }

    ...with MyServer being declared as:

    public class MyServer extends Application {
        @Override
        public void main(String[] args, ApplicationContext context) {
          ..
        }
    }

    The equivalent in Scala:

    object MyServerEntryPoints {
      private lazy val applicationProcess = ApplicationProcess(MyServer)
    
      def main(args: Array[String]): Unit =
        applicationProcess.main(args)
    
      def trap(signal: Int): Unit =
        applicationProcess.trap(signal)
    }

    ...with MyServer being declared as:

    object MyServer extends Application {
      override def main(args: Array[String], applicationContext: ApplicationContext): Unit = {
        ..
      }
    }

    The essential idea is that a regular JVM entry point (MyServerEntryPoints), establishes a com.cisco.streambed.ApplicationProcess of a class named MyServer. The trap method is used by Landlord for whenever an operating systemm signal is sent to the process. My extending com.cisco.streambed.Application, a com.cisco.streambed.ApplicationContext is provided by Streambed, containing almost all of what an application will require in order to startup (an actor system, metrics, logging...). The resources provided within the context are also automatically released on exit.

    Definition Classes
    cisco
  • package controlplane

    Generic meta data event declarations so that observations, and other things, can be made known to the system as a whole.

    Generic meta data event declarations so that observations, and other things, can be made known to the system as a whole.

    Definition Classes
    streambed
  • package crypto

    Utilities that abstract crypto functions, such as encoding/decoding given a salt.

    Utilities that abstract crypto functions, such as encoding/decoding given a salt.

    Definition Classes
    streambed
  • package durablequeue

    The com.cisco.streambed.durablequeue.DurableQueue is at the heart of streambed.

    The com.cisco.streambed.durablequeue.DurableQueue is at the heart of streambed. Streambed programs are essentially formed around the durable queue. Use a com.cisco.streambed.durablequeue.DurableQueue.Provider to declare the type of queue you require. See the package doc for Streambed's ChronicleQueue for an example.

    Definition Classes
    streambed
  • package http

    High level Akka http utilities e.g.

    High level Akka http utilities e.g. making it easier to bind and handle an HTTP port with a TLS certificate as per com.cisco.streambed.http.HttpServerConfig.

    Definition Classes
    streambed
  • package identity

    Identity management inspired by Hashicorp Vault's secret storage model.

    Identity management inspired by Hashicorp Vault's secret storage model. com.cisco.streambed.identity.Principal objects represent a entity that has attempted to authenticate. An authenticated entity yields a com.cisco.streambed.identity.Principal.AuthenticationToken by which secrets can then be requested against a com.cisco.streambed.identity.SecretStore. Secret stores can come in many forms and are selected by using a com.cisco.streambed.identity.SecretStore.Provider. See the streambed.identity.iox package for one such implementation.

    Definition Classes
    streambed
  • package lora
    Definition Classes
    streambed
  • package mqttgateway

    A streambed service that can be dynamically configured to publish and subscribe to sensor events and their meta data.

    A streambed service that can be dynamically configured to publish and subscribe to sensor events and their meta data. An HTTP API is provided as a control plane.

    Definition Classes
    streambed
  • package storage

    Storage provides mechanisms to persist and retrieve arbitrary data.

    Storage provides mechanisms to persist and retrieve arbitrary data. This complements com.cisco.streambed.durablequeue.DurableQueue and can be used a snapshotting mechanism, a common pattern in event sourcing and CQRS systems.

    By default, an implementation using the local filesystem is provided. E.g. see "com.cisco.streambed.storage.fs.FileSystemRawStorage" elsewhere.

    Definition Classes
    streambed
  • package fs
  • package noop
  • RawStorage
  • Snapshots
  • StateCodec
  • Storage
  • package telemetry

    Metrics and tracing functionality.

    Metrics and tracing functionality. Leverages the reactive-streams-telemetry project.

    Definition Classes
    streambed
  • package testkit

    Various utilities to support streambed based tests

    Various utilities to support streambed based tests

    Definition Classes
    streambed

package storage

Storage provides mechanisms to persist and retrieve arbitrary data. This complements com.cisco.streambed.durablequeue.DurableQueue and can be used a snapshotting mechanism, a common pattern in event sourcing and CQRS systems.

By default, an implementation using the local filesystem is provided. E.g. see "com.cisco.streambed.storage.fs.FileSystemRawStorage" elsewhere.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. storage
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Package Members

  1. package fs
  2. package noop

Type Members

  1. abstract class RawStorage extends AnyRef

    RawStorage is responsible for taking an identifier and a Source of bits and persisting them.

    RawStorage is responsible for taking an identifier and a Source of bits and persisting them. It's also responsible for retrieving those bits given the same identifier.

    Implementations need not concern themselves with concurrency matters. Concurrency is handled by the Storage class, which is the interface that consumers of the storage mechanism interact with.

    To implement, subclasses should extend this class and define clean, source, and sink methods.

  2. trait StateCodec[A] extends AnyRef

    A StateCodec defines functions required to serialize and deserialize arbitrary data in a streaming fashion.

  3. final class Storage extends AnyRef

    Provides an interface to the Storage mechanism that allows concurrent read/write access to the underlying RawStorage instance.

Value Members

  1. object RawStorage
  2. object Snapshots

    Types and functions for managing snapshots.

    Types and functions for managing snapshots. Snapshots dramatically speed up the sourcing of events. The actual load/save mechanism is an outside concern to the domain of this module. This module is focused on how events can flow from and to storage and become aggregated.

    A Snapshot's events are loaded and emitted as Snapshots.StoredEvent, followed by a Snapshots.StoredEventsDone on completion. New events are then sourced and emitted as Snapshots.StreamedEvents. A typical stream looks like:

    Snapshots
      .fromStorage(storageLoader)
      .flatMapConcat(
        initialState =>
          tailFromOffset(initialState.offset, finite)
            .scan((initialState, Option.empty[DashboardsEvents.Event])) {
              case ((state, _), (element, offset)) =>
                val newState = nextState(state, element, offset)
                (newState, Some(element))
            }
            .drop(1)
            .wireTap(Snapshots.toStorage(storageSaver))
            .collect(Snapshots.streamedEvent)
            .prepend(Snapshots.storedEvents(source(initialState), None)))
  3. object StateCodec
  4. object Storage

    Storage provides arbitrary ephemeral data storage.

    Storage provides arbitrary ephemeral data storage. One intended use-case is to persist snapshots of read models that are computed by consuming DurableQueue topics.

Inherited from AnyRef

Inherited from Any

Ungrouped