FD-2505

Release Date: 2025-06-06

Software Version

The document refers to the following applications and corresponding software versions:

Application Version
Basket Client SDK 3.0.0-beta02
Basket Service 4.1.0
Item Registration Service 4.1.0
Checkout Service 3.1.0
Basket Finalization Service 2.1.0
Basket Event Bridge Service 2.1.0
Basket Notification Service 2.1.0
Offer Registration Service 2.1.0

What's New - Basket Client SDK

Basket Lock Manager

The BasketLockManager was introduced to address critical concurrency issues in the basket management system. This document explains why this component was created, its importance, and the benefits it provides to the overall system architecture.

The basket management system operates in a highly concurrent environment where multiple coroutines might attempt to modify basket data simultaneously. Before the introduction of BasketLockManager, this led to several issues:

  • Race Conditions: Multiple coroutines could read and modify the basket state at the same time, leading to inconsistent data.
  • Data Corruption: Concurrent modifications could result in partial updates or lost updates to the basket.
  • Unpredictable Behavior: Without proper synchronization, the behavior of the system was non-deterministic when multiple operations were performed concurrently.
  • The BasketLockManager was created to provide a clean, reusable solution for ensuring thread safety in basket operations across the entire codebase.
Issue Key Summary Change Description
POCP-76663 Introducing Basket Lock Manager The BasketLockManager is a critical component that ensures data integrity and consistent behavior in our basket management system. By providing a centralized, easy-to-use mechanism for thread safety, it significantly improves the reliability and maintainability of our codebase.

Resolved Issues

Issue Key Summary Change Description
POCP-76848 Fixed missing automatic synchronization Refactored waitForFinishSyncInfo to use idiomatic flow and ensured that the checkout process correctly waits until the synchronization is finished
  • Replaced with firstOrNull + drop(1)
  • Preserved logging of initial and intermediate sync states
  • Ensured early return if the initial sync state is already finished
  • Improved readability and flow control consistency

What's New - Basket Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-76504 GraphQL - New fields for swapping and monitoring Extended the GetStoreBasketOverviews query in the GraphQL endpoint:
  • Added clientTypes to the request
  • Added customerId and deviceId to the request
  • Extended the response with more basket fields (deviceId, customerId etc.)
POCP-76940 New Subprocess - Remove Customer New subprocess called 'Remove Customer' which removes all customer-related data from the basket and its transaction
POCP-77146 Basket Security upgrades (Snyk.IO) Resolved SNYK findings

What's New - Item Registration Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-77176 Forward GK-Device-Id and GK-Customer-Id header attributes The GK-Device-Id and GK-Customer-Id header attributes in the calls to Basket Service need to be forwarded so that the Basket Service is able to check if the values match the values in the basket.
POCP-77146 Basket Security upgrades (Snyk.IO) Resolved SNYK findings

What's New - Checkout Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-77146 Basket Security upgrades (Snyk.IO) Resolved SNYK findings
POCP-77146 Basket Security upgrades (Snyk.IO) Resolved SNYK findings

What's New - Basket Finalization Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-77146 Basket Security upgrades (Snyk.IO) Resolved SNYK findings

What's New - Basket Event Bridge Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-77146 Basket Security upgrades (Snyk.IO) Resolved SNYK findings

What's New - Basket Notification Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-77146 Basket Security upgrades (Snyk.IO) Resolved SNYK findings
POCP-77067 Basket events for customer update Created basket events when a customer is added to / removed from the basket

What's New - Offer Registration Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-77146 Basket Security upgrades (Snyk.IO) Resolved SNYK findings