Service - Variant Manager
Overview
Each product is handled by a Service - Variant (handlers) service.
The Variant Manager service handles shared orchestration of Variant Handler services.
Repository
https://bitbucket.org/izara-market-products/izara-market-products-variant-manager/src/master/
DynamoDB tables
Standard Config Table Per Service
Configuration tags
{
configKey: "ProductsGraphServiceName"
configTag: "ProductsGraphServiceName"
configValue: xxx // eg: "ProductsGraph"
}
{
configKey: "VariantHandlerService"
configTag: xxx // variantHandlerServiceNameTag, eg: "VariantStandard", this is what is saved in each catalog record
configValue: {
serviceName: xxx // eg: "VariantStandard", this is the actual deployed service name}
}
}
{
configKey: "TranslateIdsType"
configTag: xxx // eg SellOffer > Product would be sellOffer_product
configValue: {
ttl: 64000 // number of seconds TranslateIdsCache records live for
}
}
Variants
Records which Handler manages each variant
{
variantId
variantHandlerServiceNameTag
}
- partition key: variantId
- sort key: (none)
LogicalResults
Stores results for any requests to perform logical searches on variant data
{
resultId: xxx // eg: filterMainId for a single logical element
dataId: xxx // one variantId
}
- partition key: resultId
- sort key: dataId
TranslateIdsCache
Stores a record for any unique translateId process
{
cacheId // fromType + "_" + fromDataId + "_" + toType
toDataId
expireTime
}
- partition key: cacheId
- sort key: toDataId
- expireTime is set as an automatic DynamoDB TTL attibute