Keeping dependencies updated for performance

Edit on GitHub

Keeping your project’s Spryker module dependencies up to date is critical for maintaining optimal performance, security, and reducing long-term upgrade efforts.

Why keep dependencies updated

Updating dependencies regularly provides several practical benefits:

  1. Risk of security vulnerabilities: Most recent versions contain necessary fixes to all known vulnerabilities.
  2. Performance and resource consumption optimizations: Spryker continuously releases performance improvements based on real-life experiences and scenarios.
  3. Decreasing upgrade efforts: Distributing upgrades across many smaller steps is much easier than doing one massive upgrade later.

Key resources

The following resources provide information about performance-related module releases:

Critical module updates

The following sections list important module updates that include performance improvements. It’s recommended that each Spryker project evaluates and applies these updates.

Product search performance

spryker/product-page-search - Recent versions (for example, 3.38.0 - 3.40.0) include improvements such as:

  • Caching logic adjustments for product images
  • Potential bulk operation support to make search document writes more efficient
  • Avoiding duplicate locale events

Session management

spryker/session - at least ^4.17.0

  • Provides configurable session locking mechanism
  • See Redis session lock for configuration details

spryker/session-redis - at least ^1.11.2

Merchant Portal and Back Office performance with ACL rules

Order placement performance

OMS availability check and order item reservation

Publish and synchronization (Category tree build logic)

Cart page and checkout for large carts (100+ items)

For comprehensive guidance on optimizing cart performance, see Cart page performance configuration.

Update strategy

To effectively manage dependency updates:

  1. Monitor release notes: Regularly check Spryker release notes for performance-related updates.
  2. Test in staging: Always test module updates in a staging environment before production deployment.
  3. Prioritize performance modules: Focus on modules that directly impact your application’s performance bottlenecks.
  4. Use semantic versioning: Understand the impact of major, minor, and patch updates.
  5. Batch related updates: Group related module updates together for testing efficiency.

Compatibility considerations

When updating modules:

  • Check module compatibility with your current Spryker version
  • Review breaking changes in major version updates
  • Test all affected functionality after updates
  • Monitor application performance metrics before and after updates
  • Consider using Spryker’s Composer Dependency Manager