Overview¶
This is the documentation for the synqup/core package. It is a PHP package that provides the core functionality
for the synQup project. The package is built using Symfony and other libraries. It is extendable by modules to
connect to different data sources and target systems.
SynQup Core needs a data model to work with. The data model must be installed separately. The data model is provided
by the synqup/common and synqup/commerce packages.
Additionally, SynQup Core needs a user interface to interact with. The user interface is provided by the
synqup/user-interface. The user interface is built using vue.js and communicates with the core package using the
REST API.
Branches and Versions¶
Note that the versions in composer.json are not relevant due to the deployment system that we are using. We still use versions to keep track of the changes in the package and to be able to define dependencies.
Branch 1.x¶
The branch of this version is release/version-1.
This branch is the first stable version based on Symfony 5.4. It has the most common features like flows, flow executions and so on. The configuration of JDMs is mainly done in the table job_dispatcher_mapping.
It also includes the config snippets feature. This feature allows you to define snippets of configuration that can be reused in different flows. It also includes the ability to define templates for JDMs and use overrides for different JDMs.
Version 1.1¶
This is the version before the introduction of environments and inheritance of configurations. If you would like to upgrade to the branch with environments, you should test with this version first.
Version 1.2¶
Support of feature flags was added. This allows you to enable or disable features in the application & in the user interface. The feature flags are stored in the database and can be managed via the API.
Branch 1.5¶
The branch of this version is release/version-1-5.
This branch introduces environments and inheritance of configurations. A classical configuration located in the table job_dispatcher_mapping can be overridden by an environment configuration. This allows you to define different configurations for different environments like development, testing and production or different output targets.
Version 1.6¶
Support of feature flags was added. This allows you to enable or disable features in the application & in the user interface. The feature flags are stored in the database and can be managed via the API.
Branch 2.x¶
This version is based on Symfony 6.4. All 3rd party libraries are updated to the latest versions. Deprecations are removed and the code is refactored (more type hints, more inline documentation, etc.).
This version will use a data model based on PHP attributes instead of annotations.
Version 2.1¶
Support of feature flags was added. This allows you to enable or disable features in the application & in the user interface. The feature flags are stored in the database and can be managed via the API.
3.x (upcoming)¶
Core 3.x will be a major architectural change. The main goal is to split core and modules. We will provide an app system with a huge API to interact with the core. Modules will be replaced with apps. The core itself will be split to microservices.