Introduction to Bloomreach Experience Manager Incubating Features Policy

Definition and Purpose

Incubating features are new APIs, extension points, or functionalities introduced for early adoption and feedback and these features might be subject to potential backward-incompatible changes in a minor version.

Production Readiness: Despite the subject-to-change nature, incubating features are production-ready and tested by the Bloomreach Content team.

Purpose: These features are released to address a new or rapidly evolving technology or use case, or when real-world feedback is required to finalize the feature's design. 

Criteria for Designation

A feature is designated as Incubating if it meets at least one of the following criteria:

  • It addresses a new or rapidly evolving technology or use case.

  • It requires real-world feedback to finalize its design.

  • It includes third-party libraries, which evolve rapidly and can introduce breaking changes.

Lifecycle Progression

  1. Incubating: The feature is available and production-ready, but subject to potential backward-incompatible changes in a minor version.
  2. Mature: The feature is finalized, and backward compatibility is guaranteed (changes only occur in major releases).

An Incubating feature is typically promoted to Mature when:

  • It has received sufficient real-world adoption and feedback.
  • The design or API is proven and deemed unlikely to require breaking changes.
  • It has not had any backward incompatible changes after three minor versions.

If an incubating feature is determined to be unfit for Mature stage, it may be deprecated or removed with appropriate notice in release notes.

Guiding Principles

The process follows key principles:

  • Minimize Risk: Incubating features are isolated to minimize impact on related functionality.

  • Clear Boundaries: Only features meeting the incubation criteria are eligible; core, widely used APIs are excluded from this designation.

  • Iterative Improvement: Features are iteratively improved based on real-world feedback and usage data.

Adopting and Extending Incubating Features

When developing custom code and solutions based on BrXM, it is essential to understand the compatibility promise of the features you are extending.

Adoption Guidance

While incubating features are production-ready, developers must carefully consider their use, especially when building extensions:

Production Use: You can use these features in production. However, be aware that their extensions and customizations might be subject to backward-incompatible changes or removal in minor or maintenance releases, which could require updates to your code.

Code Adjustment Required: If an incubating feature changes, you may need to update, migrate, or adjust your custom code solutions.

Identifying Incubating Features

All features in the Incubating stage are clearly marked to ensure developer awareness:

  1. Documentation: The features will include comprehensive documentation, explicitly stating their incubating status, the associated risks, intended use cases, and guidance on expected changes and support limitations.
  2. Code & Artifacts: A note will be added to the developer guideline immediately, stating that code and extensions may be subject to changes.Incubating features are packaged and distributed via Maven artifacts that contain the word 'incubating' in the artifact ID (e.g., content-ai-service-impl-incubating). 

Support and Feedback

The primary focus of support at this stage is on collecting feedback, which is crucial for helping to shape the evolution and finalization of the feature.

Please reach out to Bloomreach Support team about any questions, feedback or issues related to incubating features.

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?