# Data Plane Setup


The data plane is RudderStack's core engine for processing and routing the events. 

For more information on how the data plane works, see [RudderStack's data plane architecture]({{< ref "get-started/rudderstack-open-source/rudderstack-architecture.md#data-plane-architecture" >}}).

## Setup instructions

Depending on the platform where you want to set up RudderStack, see the following data plane setup instructions:

* [Docker]({{< ref "get-started/rudderstack-open-source/data-plane-setup/docker.md" >}})
* [Kubernetes]({{< ref "get-started/rudderstack-open-source/data-plane-setup/kubernetes.md" >}}) (**recommended**, if you plan to use RudderStack in production)
* [Developer machine setup]({{< ref "get-started/rudderstack-open-source/data-plane-setup/developer-machine-setup.md" >}})

{{< warning >}}
RudderStack **recommends** using the latest `rudder-server` and `rudder-transformer` versions to avoid any breaking changes to your pipelines. 

See the [Server-Transformer Compatibility]({{< ref "get-started/rudderstack-open-source/server-transformer-compatibility/" >}}) guide for more information.
{{< /warning >}}

## Troubleshooting

See [FAQ]({{< ref "get-started/rudderstack-open-source/faq.md#data-plane-setup" >}}) for quick solutions to some common problems you might encounter while setting up your RudderStack data plane.

<br /><br />
