# Getting Started

[Fluent Bit](http://fluentbit.io) is a straightforward tool and to get started with it we need to understand it basic workflow. Consider the following diagram a global overview of it:

![Fluent Bit Workflow](https://3888646752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKKSx-3LBTCtaHbg0gl%2F-LKKTm4Y55lytnFhqfG1%2F-LKKTt1Lt4FYzRqgQGtG%2Flogging_pipeline.png?generation=1534737494932429\&alt=media)

| Interface                                                               | Description                                                                                                                                                                              |
| ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Input](https://docs.fluentbit.io/manual/1.3/getting_started/input)     | Entry point of data. Implemented through *Input Plugins*, this interface allows to gather or receive data. E.g: log file content, data over TCP, built-in metrics, etc.                  |
| [Parser](https://docs.fluentbit.io/manual/1.3/getting_started/parser)   | Parsers allow to convert unstructured data gathered from the Input interface into a structured one. Parsers are optional and depends on Input plugins.                                   |
| [Filter](https://docs.fluentbit.io/manual/1.3/getting_started/filter)   | The filtering mechanism allows to *alter* the data ingested by the Input plugins. Filters are implemented as plugins.                                                                    |
| [Buffer](https://docs.fluentbit.io/manual/1.3/getting_started/buffer)   | By default, the data ingested by the Input plugins, resides in memory until is routed and delivered to an Output interface.                                                              |
| [Routing](https://docs.fluentbit.io/manual/1.3/getting_started/routing) | Data ingested by an Input interface is *tagged*, that means that a Tag is assigned and this one is used to determinate where the data should be routed based on a *match* rule.          |
| [Output](https://docs.fluentbit.io/manual/1.3/getting_started/output)   | An output defines a destination for the data. Destinations are handled by output plugins. Note that thanks to the Routing interface, the data can be delivered to multiple destinations. |
