# Architecture

You can think of Nimbus as a data pipeline for your telemetry. We provide an out of the box opinionated framework to process your telemetry according to industry best practices.

## Flow Diagram

![Nimbus Pipeline](https://ik.imagekit.io/fpjzhqpv1/Nimbus%20Filter%20Pipeline_jDB_TNCmp.png?updatedAt=1701103529900)

## Components

### Global Ingress Preprocessor

* parse logs according to source format
* meter and derive analytics from ingress

### Global Router

* routes telemetry depending on condition
  * if message is identified as an error, forward to error route
  * if message matches a optimization predicate, forward it to filter route
  * all messages not processed by a transform or matched as an error go to the default route

### Error Route

* applies error specific attributes and optimizations

### Filter Routes

* applies optimization specific attributes and optimizations

### Default Route

* applies default attributes and optimizations
* currently, this applies `nimkind: raw` to the log

### Global Egress Processor

* meter and derive analytics from ingress
