Skip to content

Incoming-Route-Outgoing

The incoming, route, and outgoing architectural pattern in Alumio is a structured approach to data integration that facilitates the flow of data between external sources and endpoints. Here's a summary of each component:

  • Incoming Configuration: :incoming_envelope: This defines how Alumio retrieves data from external sources, such as ERP systems, (s)FTP directories, REST APIs, or databases. The incoming data can be fetched based on a schedule or in real-time, depending on the system's capabilities and the integration requirements.

An Incoming configuration delivers a dataset. This could be a single 'entity' (i.e. a single order, when Alumio gets a Webhook when a new order is placed) or a larger dataset of multiple entities (i.e. pages of stock-positions per product, when retrieving all or an updated set of stock positions).

  • Route: A route in Alumio connects an incoming configuration to an outgoing configuration. It acts as the middleman that can apply transformations to the data, ensuring it is in the correct format or structure before becoming a Task. Routes can read or fetch data from a single incoming data connection and push it to one outgoing connection. However, multiple routes can push data to a common Outgoing configuration if needed. Likewise, multiple routes can read from a single Incoming configuration and send it to different Outgoing configurations.

The Route's Entity Transformers change the data before a Task is created, and the Route is responsible for the queueing/scheduling of the Task itself. The Route can also automatically retry failed tasks.

  • Outgoing Configuration: This defines how Alumio sends the processed data to external systems. The outgoing configurations can be set up to connect to various endpoints, and like incoming configurations, they can be reused across multiple routes.

Generally the Outgoing configuration is 'where the magic happens' 😄. The Incoming & Route configurations are meant to set up the data to get into a position where the Outgoing configuration can enrich, map & sent the data to another system.

In essence, the incoming, route, and outgoing pattern is a modular and flexible way to manage integrations, allowing for clear separation of concerns, reusability of configurations, and ease of maintenance. It supports complex integration scenarios by allowing multiple incoming sources to be routed through different transformations and then sent to various outgoing destinations.