Skip to content

v1.0.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 28 Feb 04:01
59b5ab9

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