analyze, detect, and react as a service

Create powerful services that consume, transform, enrich, filter, and aggregate events. Effortlessly deploy into a fully managed cloud.

Expressive

Declare what you want to do with event data, not how to do it.

Customizable

Process events with JavaScript programs.

Fully managed

Deploy services into Pyroclast’s fully managed cloud. Say goodbye to headaches over servers, operations, logging, and metrics.

Testable

Version control and test your services with your favorite tools. Pyroclast can run offline, making it convenient to run as part of your continuous integration build.


Build powerful services

Build services that reshape events in any way you desire. Transform, enrich, filter, and aggregate event data to serve the needs of your application stack. Pyroclast’s simple, declarative YAML model keeps complexity extremely low.

service:
  name: temperatures
  doc: "Materializes sensor temperature readings."
  operations:
    - operation: readFromTopic
      params:
        topicId: sensorReadings

    - operation: materializeViews
      params:
        groupBy:
          - sensorId
      views:
        - name: readingCountByHour
          operation: count
          params:
            windowType: fixed
            rangeDuration: 1
            rangeUnits: hours
            timestampKey: timestamp
Analyze

Group events by time, session, or any other attribute. Enhance your data with built-in transformations or write your own in Javascript.

Detect

Spot anomalies or opportunities. Chain rules to match arbitrarily complex patterns over all your events.

React

Invoke Lambda functions, Webhooks, or microservices. Send new events to downstream listeners in your stack.


Write full-blown JavaScript

Process events exactly the way you want by writing services in JavaScript. Filter away events with non-trivial logic. Craft nested aggregations that condense events in any way. Stateful functions get to take advantage of Pyroclast’s managed state capabilities for free.

export function fahrenheitToCelsius(record) {
  record.reading.celsius = (record.reading.fahrenheit - 32) * 5 / 9;
  return record;
}
service:
  name: temperature-conversion
  doc: "A streaming microservice that converts F to C."
  operations:
    - operation: readFromTopic
      params:
        topicId: sensorReadings
        wrapWithMetadata: false

    - operation: customFunction
      language: javascript
      params:
        function: [./src/library.js, fahrenheitToCelsius]
      doc: "Convert readings from fahrenheit to celsius."

    - operation: writeToTopic
      params:
        topicId: convertedReadings
Use your dev tools

Integrate Pyroclast into your workflow effortlessly.

Leverage JS ecosystem

Build a proper project with dependencies, and let Pyroclast bundle them up on your behalf.

Fully managed state

Integrate with Pyroclast’s aggregations and get correct, high-performance state for free.


Deploy to a serverless cloud

No more servers and infrastructure management. Launch services into Pyroclast’s serverless cloud with a single command.

$ pyroclast deploy --service temperature-readings.yml --name production
Serverless

Services run on the back of a high performance, managed cluster of containers.

Scalable

Services scale horizontally in the face of increased volume. Millions of messages per second are a breeze.

Fault tolerant

Leave your degree in distributed systems at home. Pyroclast has been engineered to correctly recover from failures.

Store

Capture and send events to Pyroclast’s hosted storage.

Learn more

Integrate

Stream data into any layer of your stack, supercharging your product's capabilities.

Learn more