Key features

Build, deploy and scale analytic use cases fast

Modern use case development platform

As a user of Joule, your main focus will be building use cases that address point-in-time or strategic business needs - there is no need to continually rebuild technology assets. Just reuse existing components to kick start the process and add new assets when needed.

Joule supports turning your needs in to deployable runtime assets.​

Joule high level architecture

Key features include

  1. Low code development platform Effortlessly create use cases with Joule DSL, enabling swift development of versatile stream processing pipelines.

  2. Analytics enablement Harness ML model support, auditing, geospatial capabilities, streaming window analytics, SQL metrics engine and triggers for enhanced functionality.

  3. Stream processors Enrich, encrypt and mask data effortlessly with out-of-the-box processors and supported scripting languages (Node.js, JavaScript, Python).

  4. Data connectors Effortlessly consume and stream consistent data with out-of-the-box connectors, including Kafka, MQTT, data lakes, NoSQL, web sockets, OpenAPI and more.

  5. Contextual data Enrich streaming events with dynamic, static and slow-moving contextual data using embedded local caching.

  6. APIs & SDK An extendable API is available to empower developers in building custom components.

  7. Observability All components have processing metric counters which can be monitored using external solutions

  8. Flexible deployment Joule has been designed to be platform agnostic, offering seamless deployment options whether you choose a local, on-premise or cloud-based environment.

In the following section, we will further explore each feature.


Low code

At its core, Joule adheres to the design principle of delivering a low-code use case platform that fosters rapid development iterations for impactful business outcomes.

Packaged with a dedicated use case language, DSL and a suite of reusable assets. Joule empowers developers to commence building immediately after installation.

Key language elements

  • Flexible event subscriptions and publishing

  • Stream event processing pipeline

  • Custom SQL Metrics definition

  • Extendability through custom components

  • Mainstream product integrations

Example

stream:
  name: standardQuoteAnalyticsStream
  enabled: true
  eventTimeType: EVENT_TIME
  sources: [ nasdaq_quotes_stream ]

  initialisation:
    sql import:
      schema: standardQuoteAnalyticsStream
      parquet:
        - table: quote
          asView: false
          files: ['quotes*.parquet']
          index:
            fields: ['symbol']
            unique: false

  processing unit:
    metrics engine:
      runtime policy:
        frequency: 1
        startup delay: 2
        time unit: MINUTES

      foreach metric compute:
        metrics:
          - name: BidMovingAverage
            metric key: symbol
            table definition: standardQuoteAnalyticsStream.BidMovingAverage (symbol VARCHAR, avg_bid_min FLOAT, avg_bid_avg FLOAT,avg_bid_max FLOAT)
            query:
              SELECT symbol,
              MIN(bid) AS 'avg_bid_min',
              AVG(bid) AS 'avg_bid_avg',
              MAX(bid) AS 'avg_bid_max'
              FROM standardQuoteAnalyticsStream.quote
              WHERE
              ingestTime >= date_trunc('minutes',now() - INTERVAL 2 MINUTES) AND ingestTime <= date_trunc('minutes',now())
              GROUP BY symbol
              ORDER BY 1;
            truncate on start: true
            compaction policy:
              frequency: 8
              time unit: HOURS

    pipeline:
      - filter:
          expression: "symbol != 'A'"

  emit:
    select: "symbol, BidMovingAverage.avg_bid_max;WHERE symbol=${symbol} 'avg_bid_max'"

  group by:
    - symbol

Analytics enablement

Joule provides three flexible methods to build analytical insights. Each method is describe below.

The integration of streaming analytics serves as a pivotal feature, empowering the evolution of sophisticated use case development, including applications like geospatial analytics for marketing, business analytics and feature preparation for machine learning predictions.

Key features

  • Tumbling and sliding windows

  • Standard statistical functions

  • Custom analytic functions

  • Geospatial analytics (Geo Tracker, Geofence occupancy, spatial index)

Example

time window:
  emitting type: tumblingQuoteAnalytics
  aggregate functions:
    FIRST: [ask]
    LAST: [ ask ]
    MIN: [ ask ]
    MAX: [ bid ]
    SUM: [ volume ]
    MEAN: [ volatility ]
    VARIANCE: [ volatility ]
    STDEV: [ volatility ]
  policy:
    type: tumblingTime
    window size: 5000

Stream processors

Event processing is executed through the definition of a processor's pipeline.

Events undergo sequential processing utilising a micro-batch methodology, a technique employed to boost processing throughput while optimising the utilisation of underlying hardware capabilities.

Processors

Because Processors are a critical component, we have listed them below.

New processors are constantly added to the platform. Please contact Fractalworks for an updated list

Data connectors

Data connectors, sources and sinks are a key component within the Joule low-code ecosystem that consume and distribute data.

Connectors

Contextual data

For Joule applications, contextual data is crucial for enabling advanced and insightful stream processing.

By seamlessly integrating contextual data with real-time events, the system delivers enriched processing outcomes and better informed insights.

Contextual data

APIs & SDK

A Java SDK for developers is supplied to extend platform capabilities, enabling the customisation and enhancement of processors and data transports.

APIs

Rest base APIs to access key Joule functions

  • Data access APIs

  • Deployment management APIs

API Endpoints

SDK

Flexible SDK to enable platform extensibility

  • User defined analytics

  • Processors

  • Data connectors

Builder SDK

Observability

Each processing component in Joule furnishes a standard set of metrics, offering insights to users into the number of events received, processed, discarded and failed.

Furthermore, with the SQL engine enabled, both raw and processed events are stored, making them queryable and exportable for enhanced analytical capabilities.

Observability

Flexible Deployment

Joule has been designed to be platform agnostic, offering seamless deployment options whether you choose a local, on-premise or cloud-based environment.

Joule is packaged as a Docker container for simplified deployment configurations or as a standalone binary, providing flexibility to meet diverse deployment needs.

Last updated

Was this helpful?