Skip to main content
The Application Manager is a backend microservice in FlowX.AI that: βœ… Manages FlowX applications, versions, manifests, and configurations.
βœ… Acts as a proxy for front-end resource requests.

Infrastructure prerequisites

Before you start setting up the Application Manager service, ensure the following infrastructure components are in place:
Ensure that the database for storing application data is properly set up and configured before starting the service.

Dependencies

The Application Manager relies on other FlowX services and components to function properly:

Core configuration environment variables

Basic service configuration

Database configuration

PostgreSQL configuration

MongoDB configuration

The Application Manager requires MongoDB to store runtime build information. Use the following environment variables for configuration:

Redis configuration

If caching is required, configure Redis using the following environment variables:

Kafka configuration

Kafka connection and security variables

Kafka producer configuration

OAuth authentication variables (when using SASL_PLAINTEXT)

Kafka consumer configuration

Kafka consumer threads configuration

Topic naming convention and pattern creation

The Application Manager uses a sophisticated topic naming convention that follows a structured pattern. This ensures consistency across environments and makes topics easily identifiable.

Topic naming components

Topic pattern creation

Topics are constructed using the following pattern:
For example, a typical topic might look like:
Where:
  • ai.flowx.dev. is the prefix (package + environment)
  • application-version is the service
  • export is the action
  • .v1 is the suffix (version)
For more complex topics, additional components are added:
Where:
  • resources-usages represents the resource type
  • sub-res-validation represents the operation type
  • response indicates it’s a response message

Kafka topic configuration

Application resource topics
Build resource topics
Process topics
Other topics
These Kafka topics use predefined naming conventions for ease of use. Optional adjustments may be made if the desired topic name cannot be achieved with the standard structure.

Authentication configuration

OpenID Connect configuration

Service account configuration

Spring security OAuth2 client configuration

The Application Manager requires proper authentication settings to secure access to application resources and APIs. By default, the service is configured to use Keycloak as the OpenID provider, but it can be adapted to work with other OAuth2-compatible providers.
Refer to the dedicated section for configuring user roles and access rights:

Access Management

File storage configuration

S3 is used in the Application Manager for:
  • Storing imported and exported resources
  • Storing application versions and builds that are imported or exported

Monitoring and health check configuration

Resource proxy configuration

The Resource Proxy module forwards resource-related requests to appropriate services, handling CRUD operations on the manifest. It requires proper configuration of proxy endpoints:
FLOWX_RUNTIMEEXECUTIONPROXY_WEBCLIENT_MAXINMEMORYSIZE - Specifies the maximum size (in bytes) of in-memory data for REST requests. This is particularly useful when dealing with large payloads to prevent excessive memory consumption.
  • Default Value: 5242880 (5 MB)
  • Usage Example: Set to 10485760 (10 MB) to allow larger in-memory request sizes.

Scheduler configuration

The Application Manager scheduler supports retrying failed deployments and master election for better coordination of tasks across instances:

Retry failed deployments

Configures a cron job to retry updating builds in the runtime database every minute when previous attempts have failed.

Master election

Enables master election for improved scheduling coordination when multiple instances of the Application Manager are running, ensuring that scheduled tasks are only executed once.

Configuring logging

To control the logging levels for the Application Manager, use the following environment variables:

Data model overview

The Application Manager stores application data using a relational database schema, with key entities such as application, application_version, and application_manifest. Below are descriptions of primary entities:
  • Application - Defines an application with its details like name, type, and metadata.
  • Application Branch - Represents branches for versioning within an application.
  • Application Version - Keeps track of each version of an application, including committed and WIP statuses.
  • Application Manifest - Contains the list of resources associated with a specific application version.

Ingress configuration

Configure ingress to control external access to Application Manager:
Last modified on August 20, 2025