Introduction

Respresso’s flow lets you change the way your resources are converted. It is a data flow that you can change and extend with your processing logic.

Key capabilities

Configurable

You can configure all options of our converters so the result fits perfectly into your project.
You can also configure these parameters at runtime if you wish to, the process is fully customizable.

Extensible

You can use all of our converters in any manner or order but you can also extend them with your custom converters through JSON API.
You can also trigger any external action like a CI build or a notification by webhooks at any point of the conversion.

Version controlled

Since every resource category is versioned, the respective flows can be changed for each version.

How does it work?

A flow is a declarative description of a data flow. This is represented as a dependency graph where nodes represent some kind of transformation and the edges are data dependencies.

As you request to execute a node in a flow, the system automatically starts resolving all of its dependencies. Once the data is ready at the input, the target transformation is executed and the result is returned.

A transformation can be a simple data modification, your remote conversion or another flow. The data passed to a transformation can be piped to fuse multiple data into a single input.

What does it look like?

The flow is described as a simple XML file which is designed to be readable and modifiable by hand.

Its most simple form:

<flow>
    <nodes>
        <processor name="ios"/>
        ...
        <processor name="android"/>
    </nodes>
    <connections>
        <connection from="@input" to="ios"/>
        ...
        <connection from="ios" to="@output"/>
    </connections>
</flow>