GRAVITY is a flexible integration platform designed for data processing and exchange between systems. It allows the creation of advanced ETL/ESB processes in a low-code/no-code model, based on visual design of data flows and business rules. Its clear division into projects and triggers, along with its modular structure, provides the system with high flexibility and easy maintenance, even for very complex flows. This tool is successfully used to integrate ERP, e-commerce, and CRM systems, databases, web services, and virtually any other sources of information.
The system is built on two key logical layers:
- Projects (GRAVITY.INTEGRATION) contain the data processing logic in the form of an operator graph,
- Triggers define how and when a project is executed.
Everything runs in an event-driven architecture, enabling processes to start on demand, on a schedule, or in response to external system events.
Projects – Data Processes
In GRAVITY a project is a standalone unit of data processing logic, built from interconnected operators. Each operator performs a specific task (e.g., reading a file, validating data, mapping, exporting to a database). Data moves between operators through the so-called data bus – an internal structure that transfers records and fields between components.
Each project is a graph made up of the following operator types:
- Input operators initiate the data flow by pulling data from files, databases, APIs, FTP, message queues, etc. Each one starts a separate processing stream.
- Processing operators handle the data on the data bus. Among other things, they modify, merge, filter, or classify data, recognize EDI structures, convert formats, clean data, and branch logic.
- Output operators finalize each path by saving data to target systems: SQL databases, files, web services, queues, or as a network response.
Each path in a project must start with an input operator and end with an output operator in order to run correctly.
GRAVITY lets you connect operators freely – both sequentially and in parallel – making it possible to design complex data flows as clear, graphical structures.
Through the data bus, data is transferred as records containing multiple data bits with precisely defined data types. Operators can dynamically extend, filter, or modify the contents of the data bus.
Triggers – Running Projects
For a project to run automatically, it must be assigned a trigger. A trigger is a system component that listens for a specific event or condition and, when it occurs, activates the relevant project, passing the received call parameters to it.
GRAVITY supports many types of triggers, including:
- time-based (scheduled, e.g., every 5 minutes),
- file-based (monitoring local or network folders),
- network-based (REST API calls, AS2, TCP Socket),
- message queues (RabbitMQ),
- database notifications (PostgreSQL, SQL Server, Oracle),
- custom (handling system events or external application signals).
This allows GRAVITY to work both as a real-time integrator and as a batch or hybrid mechanism.
Software Architecture
GRAVITY consists of two main application components:
- Gravity.exe – a configuration application used for:
- designing and editing data processing logic (projects),
- managing triggers and their assignments to projects,
- defining data sources and system parameters,
- configuring authorization and API access points.
- GravityTriggersRunner.exe and the system service
gravity.integration service, serving as the GRAVITY system server responsible for: - maintaining and operating the GRAVITY service server,
- listening for events sent from databases and message brokers,
- executing the logic defined in projects based on activated triggers,
- enabling process logging, error tracking, and monitoring of execution states.
The appropriate component depends on the deployment stage: GravityTriggersRunner.exe is recommended for configuration, while the gravity.integration service is recommended in production environments.