Overview

- Share resources across projects and libraries without duplication
- Maintain version control by referencing specific builds
- Create modular architectures with reusable components
- Ensure stability through controlled dependency management
- Build hierarchical structures with library-to-library dependencies
Types of dependencies
- Project Dependencies
- Library Dependencies
Key Features
- Library Access: Projects can add libraries as dependencies to access their resources
- Build-Specific: Dependencies reference specific builds of libraries for stability
- Version Control: Projects control when to upgrade to newer library versions
- Resource Availability: All resources from dependent libraries become available in the project
Use Cases
- Shared UI components and templates
- Common business processes and subprocesses
- Standardized enumerations and configuration
- Reusable integration workflows

Dependency tree management
Understanding dependency trees
A dependency tree represents the hierarchical structure of dependencies for a project or library. In FlowX 5.0, dependency trees can include multiple levels of library dependencies.
Example dependency tree
Dependency tree constraints
Allowed scenarios
Same library, same version (Allowed)
Same library, same version (Allowed)
Blocked scenarios
Same library, different versions (Blocked)
Same library, different versions (Blocked)
Circular dependencies (Blocked)
Circular dependencies (Blocked)
Conflict resolution
When dependency conflicts occur, you have several resolution options:Update Direct Dependencies
Create New Library Builds
Restructure Dependencies
Managing dependencies
Adding project dependencies
Navigate to Dependencies
Add Library Dependency

Select Build Version
Validate Dependency Tree
Confirm Addition
Adding library dependencies
Open Library Configuration
Add Library Dependency

Conflict Detection
- Version conflicts with existing dependencies
- Circular dependency detection
- Transitive dependency validation
Review Dependency Tree
Updating dependencies
Single Dependency Update
Single Dependency Update
- Navigate to the Dependencies section
- Select the dependency to update
- Choose the new build version
- FlowX validates the dependency tree for conflicts
- If conflicts exist, resolve them before proceeding

Bulk Dependency Updates
Bulk Dependency Updates
- Plan your update strategy to avoid intermediate conflicts
- Update dependencies in the correct order (typically from leaf to root)
- Use the dependency tree view to validate changes
- Test in a development environment before applying to production

Resource resolution
Resource types and references
Different resource types use different referencing mechanisms:Resource Type | Reference Method | Example |
---|---|---|
Process | Resource Definition ID | proc_customer_onboarding_123 |
Media Library Item | Resource Definition ID | media_logo_456 |
System/Workflow | Resource Definition ID | sys_crm_integration_789 |
Enumeration | Name | CUSTOMER_TYPES |
Substitution Tag | Name | WELCOME_MESSAGE |
Notification Template | Name | EMAIL_CONFIRMATION |
Document Template | Name | CONTRACT_TEMPLATE |
Configuration Parameter | Name | MAX_RETRY_COUNT |
Resource precedence rules
When multiple resources with the same name exist in the dependency tree:Highest Level Wins
Same Level Resolution
Predictable Resolution
Build and deploy considerations
Build export/import
When exporting or importing builds:- All dependent libraries are included in the export package
- Transitive dependencies are automatically resolved and included
- Version consistency is maintained across environments
- Dependency tree structure is preserved during import
Runtime behavior
At runtime:- Resource resolution follows the established precedence rules
- Dependency tree is flattened for efficient resource lookup
- Version consistency ensures predictable behavior
- Build immutability guarantees that deployed builds remain stable
Best practices
Dependency design
Version management
Team collaboration
Troubleshooting
Common dependency issues
Version Conflict Errors
Version Conflict Errors
- Update existing dependencies to compatible versions
- Create new library builds with compatible dependency versions
- Restructure your dependency hierarchy to avoid conflicts
- Review your dependency tree for optimization opportunities
Circular Dependency Detection
Circular Dependency Detection
- Analyze your dependency structure to identify the circular path
- Extract common functionality into a separate base library
- Restructure libraries to create a proper hierarchy
- Consider if the circular dependency indicates a design issue
Missing Resources
Missing Resources
- Verify the dependency was added with the correct build version
- Check if resources exist in the expected library build
- Review resource name conflicts that might affect precedence
- Ensure the library build contains the expected resources
Build Export Issues
Build Export Issues
- Validate all dependencies are using committed builds (not WIP)
- Ensure all transitive dependencies are available
- Check for missing or deleted library builds
- Review access permissions for all dependent libraries
FAQ
Can libraries depend on multiple other libraries
Can libraries depend on multiple other libraries
What happens if I delete a library that others depend on?
What happens if I delete a library that others depend on?
Can I test with WIP versions of dependencies?
Can I test with WIP versions of dependencies?
How deep can dependency trees go?
How deep can dependency trees go?
What's the difference between direct and transitive dependencies?
What's the difference between direct and transitive dependencies?
- Direct dependencies: Libraries explicitly added as dependencies to your project or library
- Transitive dependencies: Libraries that are dependencies of your direct dependencies (automatically included)
How do I resolve dependency conflicts between teams?
How do I resolve dependency conflicts between teams?
- Establish clear communication channels between teams
- Plan library updates and coordinate with dependent teams
- Use development environments to test impact of changes
- Consider creating shared governance processes for critical libraries
Can I override a transitive dependency with a direct dependency?
Can I override a transitive dependency with a direct dependency?