Component Overview

In this document, we describe the software components of NebulaStream. The following figure illustrates its components:

Controller Layer

Communication with NES happens either externally via Clients or internally via NesNodes.

The external communication is managed by the Rest Server, which allows users to interact using a call to the Rest API (add link).

The internal communication within NES is managed by the GRPC Server, which allows for the mutual request exchanges between the NES Workers and the NES Coordinator.

Service Layer

The Service Layer provides functionality within NES. To this end, the Service Layer consists of a set of stateless-services, where each executes a particular request:

  • Query Service: maintains all queries in the system.
  • Query Request Processor Service: is responsible for executing all required steps to submit a user query .
  • Nes Topology Service: maintains the topology of the system
  • Stream Catalog Service: maintains all streams in the system.

These services exploit the functionalities of lower services to fulfill their tasks and persist their information using components in the data access layer.

Data Access Layer

The Data Access Layer is responsible for persisting the state of the system. The state consists of:

  • QueryCatalog: A list of all queries in the system.
  • NESTopology: A list of all nodes and their connections in the system.
  • Request Queue: A queue that buffers and maintains all incoming requests in the system.
  • Source Catalog: A list of all sources in the system.
  • Global Execution Plan: The current execution plan that is running in the system.

Management Layer

The Management Layer provides functionalities that are accessible by all components in the system:

  • NESCoordinator (does this really makes sense?)
  • Exceptions: General exception handling
  • Utilities: Utilities for tests and code
  • Logger: the logger framework
  • GRPC (does this really makes sense?)
component_overview.txt · Last modified: 2022/03/04 17:22 by
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki