Selfuel Docs
  • Welcome to Selfuel Platform
    • Features
    • Capabilities
    • Target Audience
    • $150 Free Trial
  • Registration and Login
  • Platform UI
  • Stream Processing with Cortex
    • Cortex Quickstart Guide
    • Cortex Elements
      • Streams
      • Attributes
      • Mappings
        • 🚧Source Mapping Types
        • 🚧Sink Mapping Types
      • Node and Application Healthchecks
      • Nodes
        • Node Preview
        • Node Connectivites
        • Node Units
      • Expression Builder
        • 🚧Built-in Functions
      • Windows
        • Cron Window
        • Delay Window
        • Unique Event Window
        • First Event Window
        • Sliding Event Count Window
        • Tumbling Event Count Window
        • Session Window
        • Tumbling Event Sort Window
        • Sliding Time Window
        • Tumbling Time Window
        • Sliding Time and Event Count Window
      • Store and Cache
        • RDBMS
        • MongoDB
        • Redis
        • Elasticsearch
    • Applications
      • Applications Page
      • Creating Applications using Canvas
      • Connector Nodes Cluster
        • Source Nodes
          • CDC Source
          • Email Source
          • HTTP Source
          • HTTP Call Response Source
          • HTTP Service Source
          • Kafka Source
          • RabbitMQ Source
          • gRPC Source
          • JMS Source
          • Kafka Multi DC Source
          • JMS Source
          • AWS S3 Source
          • Google Pub-sub Source
          • AWS SQS Source
          • MQTT Source
          • Google Cloud Storage Source
          • HTTP SSE Source
          • WebSubHub Source
        • Sink Nodes
          • Email Sink
          • HTTP Sink
          • HTTP Service Response Sink
          • HTTP Call Sink
          • Kafka Sink
          • RabbitMQ Sink
          • gRPC Sink
          • JMS Sink
          • Kafka Multi DC Sink
          • AWS S3 Sink
          • Google Pub-sub Sink
          • AWS SQS Sink
          • MQTT Sink
          • Google Cloud Storage Sink
          • HTTP SSE Sink
          • WebSubHub Sink
      • Processing Nodes Cluster
        • Query
        • Join
        • Pattern
        • Sequence
        • Processor
        • 🚧On-demand Query
      • Buffer Nodes Cluster
        • Stream
        • Table
        • Window
        • Aggregation
        • Trigger
    • Run Applications
      • Run Applications Using Runners
      • Update Running Applications
      • Application Versioning
  • Data Integration with Nexus
    • Nexus Quickstart Guide
    • Nexus Elements
      • Concept
        • Config
        • Schema Feature
        • Speed Control
      • Connectors
        • Source
          • Source Connector Features
          • Source Common Options
          • AmazonDynamoDB
          • AmazonSqs
          • Cassandra
          • Clickhouse
          • CosFile
          • DB2
          • Doris
          • Easysearch
          • Elasticsearch
          • FakeSource
          • FtpFile
          • Github
          • Gitlab
          • GoogleSheets
          • Greenplum
          • Hbase
          • HdfsFile
          • Hive
          • HiveJdbc
          • Http
          • Apache Iceberg
          • InfluxDB
          • IoTDB
          • JDBC
          • Jira
          • Kingbase
          • Klaviyo
          • Kudu
          • Lemlist
          • Maxcompute
          • Milvus
          • MongoDB CDC
          • MongoDB
          • My Hours
          • MySQL CDC
          • MySQL
          • Neo4j
          • Notion
          • ObsFile
          • OceanBase
          • OneSignal
          • OpenMldb
          • Oracle CDC
          • Oracle
          • OssFile
          • OssJindoFile
          • Paimon
          • Persistiq
          • Phoenix
          • PostgreSQL CDC
          • PostgreSQL
          • Apache Pulsar
          • Rabbitmq
          • Redis
          • Redshift
          • RocketMQ
          • S3File
          • SftpFile
          • Sls
          • Snowflake
          • Socket
          • SQL Server CDC
          • SQL Server
          • StarRocks
          • TDengine
          • Vertica
          • Web3j
          • Kafka
        • Sink
          • Sink Connector Features
          • Sink Common Options
          • Activemq
          • AmazonDynamoDB
          • AmazonSqs
          • Assert
          • Cassandra
          • Clickhouse
          • ClickhouseFile
          • CosFile
          • DB2
          • DataHub
          • DingTalk
          • Doris
          • Druid
          • INFINI Easysearch
          • Elasticsearch
          • Email
          • Enterprise WeChat
          • Feishu
          • FtpFile
          • GoogleFirestore
          • Greenplum
          • Hbase
          • HdfsFile
          • Hive
          • Http
          • Hudi
          • Apache Iceberg
          • InfluxDB
          • IoTDB
          • JDBC
          • Kafka
          • Kingbase
          • Kudu
          • Maxcompute
          • Milvus
          • MongoDB
          • MySQL
          • Neo4j
          • ObsFile
          • OceanBase
          • Oracle
          • OssFile
          • OssJindoFile
          • Paimon
          • Phoenix
          • PostgreSql
          • Pulsar
          • Rabbitmq
          • Redis
          • Redshift
          • RocketMQ
          • S3Redshift
          • S3File
          • SelectDB Cloud
          • Sentry
          • SftpFile
          • Slack
          • Snowflake
          • Socket
          • SQL Server
          • StarRocks
          • TDengine
          • Tablestore
          • Vertica
        • Formats
          • Avro format
          • Canal Format
          • CDC Compatible Debezium-json
          • Debezium Format
          • Kafka source compatible kafka-connect-json
          • MaxWell Format
          • Ogg Format
        • Error Quick Reference Manual
      • Transform
        • Transform Common Options
        • Copy
        • FieldMapper
        • FilterRowKind
        • Filter
        • JsonPath
        • LLM
        • Replace
        • Split
        • SQL Functions
        • SQL
    • Integrations
      • Integrations Page
      • Creating Integrations Using Json
    • Run Integrations
      • Run Integrations Using Runners
      • Integration Versioning
  • Batch Processing/Storage with Maxim
    • Maxim Quickstart Guide
    • Maxim Elements
    • Queries
    • Run Queries
  • Orchestration with Routines
    • Routines Quickstart Guide
    • Routines Elements
    • Routines
    • Run Routines
  • Runners
    • Runners Page
    • Create a Runner to Run Applications
  • Security
    • Vaults
      • Vaults Page
      • Create Vaults
        • Runner-level Vaults
        • Application-level Vaults
      • Edit and Delete Vaults
      • 🚧Utilizing Vaults in Applications and Runners
    • Certificates
      • Certificates Page
      • 🚧Utilizing Certificates in Applications
      • 🟨Setting Up Security Settings
  • Monitoring Performance
    • Dashboard
    • Application Details
    • Runner Details
  • Logging
    • Log Types
  • Cost Management
    • SaaS
      • Pay-as-you-go
        • Hard Budget Cap
        • Soft Budget Cap
      • Subscriptions
    • On-prem
  • Organization Settings
    • General
    • Access Controls
      • User Roles and Privileges
    • Current Costs
    • Billing Addresses
    • Payment Accounts
    • Subscriptions
    • Pricing
    • Invoicing
  • User Settings
  • Troubleshooting
  • FAQs
Powered by GitBook
On this page
  • Applications, Canvases, and Nodes
  • Streams, Events, and Attributes
  • Creating Applications
  • Node Preview
  • Healthchecks
  • Expression Builder
  • Windows
  • Store and Cache
  1. Stream Processing with Cortex

Cortex Elements

PreviousCortex Quickstart GuideNextStreams

Last updated 1 year ago

Cortex Elements form the core components and utilities that users will encounter frequently while navigating through Cortex. These Elements are crucial for understanding how to maximize the platform's capabilities without redundancy in our User Guide.

Applications, Canvases, and Nodes

  • At the core of Cortex are Applications, empowering users to construct no-code data pipelines on intuitive Canvases. (cf. Creating Applications using Canvas)

  • The essence of these Canvases' no-code feature lies in the ability to drag and drop various Nodes.

  • Nodes, the fundamental building blocks of Applications, are organized into three main clusters for streamlined development:

    • Connector Nodes Cluster comprising of Source Nodesand Sink Nodes for diverse data sources and configurations

    • Processing Nodes Cluster comprising of Query, Join, Pattern, Sequence, Processor, and On-demand Query Nodes

    • Buffer Nodes Cluster compsring of Stream, Table, Window, Aggregation, and TriggerNodes

Streams, Events, and Attributes

In Cortex, the concept of Streams are pivotal to its event-driven architecture, designed to meticulously process flows of events.

Not only Streams carry events into and out-of Cortex, but also maintain data processing logic between Nodes within every Application.

  • Streams are defined as a logical sequence of events, each chronologically ordered and collectively identified by a unique name.

  • Beyond mere identification, each Stream is characterized by a defined schema—comprising a set of Attributes that dictate the structure and nature of the data it carries.

  • Integral to this schema is the concept of Mappings, which serve as the bridge between the raw data of events and the structured expectations of the Stream's schema.

Every Streams definition, encompasses the Stream name and its Attributes, establishes a clear and consistent framework for data handling within Cortex via different Mappings. Using Streams

  • You can consume and publish events into and out-of Cortex using #streams-entering-and-exiting-cortex via Source Nodes and Sink Nodes.

  • You can create #internal-streams-with-stream-nodes within Applications to process event data the way you need.

By adhering to this structured approach, Cortex ensures that all events associated with a Stream share the same schema, facilitating streamlined and coherent event processing across its Nodes.

Creating Applications

Creating Applications using Canvas involves connecting these Nodes following specific connectivity rules, enhancing user experience by guiding permissible connections and simplifying Application development. These Node Connectivites are categorized into:

  1. Nodes Connectable as Input and Output: Automating the connection process based on compatibility, eliminating guesswork for users.

  2. Minimum and Maximum Connections: Predetermined input and output connection limits for each Node, automatically enforced to streamline configuration.

  3. Node Units: A concept introduced to expedite Application development by utilizing a set of three consecutive Nodes (Node Units) to enforce connectivity rules efficiently, ensuring every Application functions as intended.

All the rules above are embedded to Canvas UI, so you need not memorize anything.

Node Preview

Node Preview serves a triple purpose:

  • Offering a quick overview of Application flow

  • Displaying vital Node-specific details

  • Providing buttons for Node configuration and deletion.

Healthchecks

Node and Application Healthchecks ensure the integrity of each Node and the overall Application, respectively, by verifying configurations against the minimum requirements necessary for successful operation.

Expression Builder

Windows

Multiple Windows can be created either as reusable entities via Window Nodes or on-the-fly within Query Nodes, catering to varied data windowing needs with multiple types and settings.

Store and Cache

By delineating these Elements, we aim to equip users with a clear understanding of Cortex's foundational components, ensuring an efficient and informed experience throughout the platform.

Expression Builder aids in custom data processing through Functions or Filters, featuring a built-in to ensure error-free expression creation. This tool is vital for Nodes requiring custom logic, enriched by Cortex's library of Built-in Functions.

Store and Cachefunctionality allows for external storage tables and aggregation tables within Tableand AggregationNodes, with mulitple options for data manipulation outside Cortex. Also an optional mechanism can also be configured to minimize latency during database interactions.

Store
Cache
6. Automatic Validation