Skip to content

Releases: aws-containers/retail-store-sample-app

v1.0.0

28 Feb 04:01
59b5ab9
Compare
Choose a tag to compare

1.0.0 (2025-02-28)

Store redesign

The store UI has been rebuilt using Tailwind CSS instead of Bootstrap resolving #594, and its look and feel has been modernized. This also provides the ability to select different colored "themes" that switch the primary color.

The theme of the store has also been changed from watches to "secret agent gadgets". The sample data was generated with generative AI via Amazon Nova.

Better experience running UI standalone

Although it was possible to run the UI component by itself the experience was degraded from running all the components. For example, the sample product data was auto-generated and not consistent with the data in the catalog component.

Running the UI component now provides the same experience as running the full architecture, which makes running the UI component standalone more viable.

Metadata page

The UI component now provides a page that displays information about the environment the container is deployed in, resolving issue #588. This is useful for demonstrations where it is necessary to show aspects such as cross-AZ load balancing and many others.

This is implemented using OpenTelemetry resource provider implementations for Java and includes metadata for Kubernetes, Amazon EC2, Amazon ECS and AWS Lambda.

Generative AI chat bot

An optional chat bot feature has been added to the UI component which allows the application to be used to demonstrate basic LLM inference scenarios. The chat bot is compatible with Amazon Bedrock and OpenAI compatible endpoints.

Catalog persistence

The catalog component persistence layer has been migrated from sqlx to gorm. This provide the ability to run the catalog with in-memory persistence, and resolves the error reported in #154. Automated tests are also implemented resolving #87.

Consistent configuration parameters

All components now use consistent environment variable names for configuring behavior, generally starting with RETAIL_<component_name>_.... This provides better decoupling from the various underlying frameworks across components, especially Spring Boot. For example there is no more reliance on Spring Boot profiles to configure behavior.

Configuring similar behavior across different components is also now more consistent. For example configuring persistence and messaging.

Reorganized repository

Various changes have been made to the layout of the repository:

  1. Helm charts are now colocated with their respective components
  2. An app component has been added for artifacts related to the entire application such as docker compose file, Helmfile, Tiltfile and Helm chart.
  3. Terraform has been moved to a top level directory

Migrated e2e tests to Cypress

The end-to-end tests have been migrated from Playwright to Cypress

Migrated UI OpenAPI clients to kiota

The API client code generated from the OpenAPI specifications of the various components for the UI have been migrated to kiota. The eventual goal is to provide a consistent set of tooling for generating client code across all components.

Java OpenTelemetry integration

Previously OpenTelemetry for Java components was implemented by installing the agent in the Dockerfile. This has now been migrated to install the OpenTelemetry dependencies directly as Java packages. This simplifies the Dockerfile and provides a path to native executables for the Java components.

Asset component removed

The "asset" component was previously used to serve product images. This component has been removed to simplify the architecture. Images are now served by the UI component directly.

Release process

The repository now uses release-please to manage the release process, allowing the removal of the previous release notes generation artifacts.

The previous contents of the dist directory like the docker compose and kubernetes manifest files are now attached to the GitHub release instead of committed.

Developer experience

The repository now includes optional components to help with consistent developer experience for contributing to the sample application using devenv and nx. This helps streamline developer environment setup and interaction with the various components across the monorepo.

This has also allowed us to remove the bash scripts for building/publishing container images and helm charts.

See the developer guide for more information.

Updated architecture diagram

Fixed issues #544 and #717

Features

Release 0.8.5

16 Jan 17:23
Compare
Choose a tag to compare

🐛 Fixes

  • Handle multiple ingresses in UI helm chart

📖 Documentation

  • Fix typo in main README

🧹 Chores

  • Fix precommit issues

Release 0.8.3

09 Nov 00:44
Compare
Choose a tag to compare

🚀 New Features

  • Support in Helm charts for PodDisruptionBudget and TopologySpreadConstraints

🐛 Fixes

  • update docker-compose instructions
  • Update aws_mq_broker to a supported engine_version

Release 0.8.2

10 Oct 21:24
Compare
Choose a tag to compare

🚀 New Features

  • Added stress and status utility endpoints

🐛 Fixes

  • Make helm tests work correctly

🧹 Chores

  • Move docker images to component directories
  • Scoped down workflow permissions
  • Upgrade checkout to node v20
  • multi-stage build for checkout

Release 0.8.1

13 Jul 03:06
Compare
Choose a tag to compare

🐛 Fixes

  • Improved mock catalog product names and descriptions
  • Properly handle public ECR images in App Runner Terraform
  • Orders helm chart should enable rabbitmq messaging

🧹 Chores

  • Upgrade Terraform to use EKS 1.29
  • Upgrade MySQL to 8.0

Release 0.8.0

08 May 00:11
Compare
Choose a tag to compare

🚀 New Features

  • Added SQS implementation for orders events
  • Re-worked orders messaging configuration
  • Carts service checks DynamoDB connectivity at startup

🐛 Fixes

  • Kubernetes dist YAML file should not container duplicate contents

Release 0.7.1

12 Mar 04:39
Compare
Choose a tag to compare

🐛 Fixes

  • Updated compose syntax specifying file

Release 0.7.0

09 Jan 16:29
Compare
Choose a tag to compare

🚀 New Features

  • Added configurable container image variables to Terraform
  • Added Terraform for ECS
  • Added proxy endpoint to UI service

🐛 Fixes

  • Fix RabbitMQ username environment variable
  • Cart service should pick up custom dynamodb table name

🧹 Chores

  • Migrated orders component to Spring Data JDBC and PostgreSQL
  • Migrate RabbitMQ broker to base TF provider
  • Migrated away from old EKS blueprints repository
  • Bump EKS version in Terraform to 1.28

Release 0.6.0

22 Dec 23:13
Compare
Choose a tag to compare

🧹 Chores

  • Upgrade to Spring Boot 3.2
  • Migrated carts service to AWS SDK for Java v2

Release 0.5.0

18 Aug 04:05
Compare
Choose a tag to compare

🚀 New Features

  • Added initial tests for catalog component

🐛 Fixes

  • Remediate Thymeleaf deprecation warnings
  • Increase UI component memory request in docker compose
  • Prevent orders metrics NaN with proper reference

🧹 Chores

  • Terraform AWS provider v5 updates