# Transformer modules

Transformer’s data transformation services are implemented in Transformer modules. You can create your own custom modules in C or Java, or you can script the Pipeline Module in [Lua](https://www.lua.org/) and JavaScript. Transformer houses the modules and pipelines, and manages the data coming in and out of them.

## Module types

The Transformer C SDK enables you to develop two types of modules:

* **Conventional modules** that perform some form of processing on the data and can only interact with other modules by passing them data updates. This is the most common type of module.
* **Extension modules** that allow functionality to be exposed to other modules and therefore be shared with them. Examples of such exposed functionality are: unified debug handling between modules, data parsing routines such as handling of fractions, database access routines.

## Standard modules

Transformer is supplied with a set of standard modules:

| Module name | Use |
| --- | --- |
| **Pipeline** | Implements a simple scripting API for the development of business rules using the [Lua](https://www.lua.org/) language or JavaScript. Once you’ve written a Lua or JavaScript pipeline, you use [pipeline configuration](transformer-pipeline-configuration.md) to add it to Transformer, where it’s then connected to the Pipeline module. |
| **JTM** | (Java Transformer Module) Implements a Java API for the development of modules in Java. |
| **Format** | Provides generic formatting functionality for use by other modules. |
| **Cluster** | Implements clustering and data replication between multiple instances of Transformer. |
| **Persistence** | Provides support for persisting key-value pairs. |

---

**See also:**

* How can I... [Write a Lua Pipeline for Transformer](transformer-write-a-lua-pipeline-for-transformer.md)
* Tutorial: [Writing a Transformer Lua pipeline module](../../../tutorials/advanced-platform-integration-suite/platadv-writing-a-transformer-pipeline-module.md)
* How can I... [Write a JavaScript Pipeline for Transformer](transformer-write-a-javascript-pipeline-for-transformer.md)
* How can I... [Write a Java module for Transformer](transformer-writing-a-java-module-for-transformer.md)
* Reference: [Modules configuration](transformer-modules-configuration.md)
* Reference: [Pipeline configuration](transformer-pipeline-configuration.md)
* Reference: [Transformer C Module API documentation](https://docs.caplin.com/developer/api/transformer_c_sdk/latest/)
* Reference: [Transformer Lua Pipeline Module API documentation](https://docs.caplin.com/developer/api/transformer_pipeline_sdk/latest/)
* Reference: [Transformer Java Module API documentation](https://docs.caplin.com/developer/api/transformer_java_sdk/latest/)
