Catalog Service
The catalog service consists of the bounded contexts Catalog, Category, and CategoryValue.
It is responsible for managing products, their variants and versions, categories, and their respective characteristics and values.
Domain Model
Imported entities from other bounded contexts are marked with a dashed border.
Technology Stack
- Language: Kotlin
- Framework: Spring Boot
- GraphQL Library: GraphQL Kotlin
- Database: PostgreSQL
- Schema Management: Flyway
Events
This section lists events that are defined or used by the catalog service.
Published Events
catalog/product/created
This event is published when a new product is created.
{
id: string,
internalName: string,
isPubliclyVisible: boolean,
defaultVariantId: string,
categoryIds: string[]
}
catalog/product-variant/created
This event is published when a new product variant is created. This includes the default variant created when a product is created.
{
id: string,
productId: string,
currentVersionId: string,
isPubliclyVisible: boolean
}
catalog/product-variant-version/created
This event is published when a new product variant version is created. This includes the initial version created when a product variant is created.
{
id: string,
name: string,
description: string,
version: number,
retailPrice: number,
createdAt: string,
canBeReturnedForDays?: number,
productVariantId: string,
taxRateId: string,
weight: number,
mediaIds: string[]
}
catalog/category/created
This event is published when a new category is created.
{
id: string,
name: string,
description: string
}
catalog/product/updated
This event is published when a product is updated.
{
id: string,
internalName: string,
isPubliclyVisible: boolean,
defaultVariantId: string,
categoryIds: string[]
}
catalog/product-variant/updated
This event is published when a product variant is updated.
{
id: string,
isPubliclyVisible: boolean
}
Subscribed Events
- tax/tax-rate/created: Used to import
TaxRatefrom theTaxbounded context. - media/media/created: Used to import
Mediafrom theMediabounded context.