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 performance

Order placement performance

OMS availability check and order item reservation

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