Service - Stock Location Manager

From Izara Wiki
Revision as of 23:26, 29 April 2023 by Sven the Barbarian (talk | contribs) (Created page with "= Overview = Each Sell Offer (Standard) record points to a Stock Loctation record which is handled by a Service - Stock Location (handlers) service, with Service - Stock Loc ation Standard handling simple quantities remaining in stock per stock location record. The Stock Location Manager service handles shared orchestration of Stock Location Handler services. = Repository = https://bitbucket.org/izara-market-products/izara-market-products-stock-location-manag...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Overview

Each Sell Offer (Standard) record points to a Stock Loctation record which is handled by a Service - Stock Location (handlers) service, with Service - Stock Loc ation Standard handling simple quantities remaining in stock per stock location record.

The Stock Location Manager service handles shared orchestration of Stock Location Handler services.

Repository

https://bitbucket.org/izara-market-products/izara-market-products-stock-location-manager

DynamoDB tables

Standard Config Table Per Service

Configuration tags

{
	configKey: "ProductGraphServiceName"
	configTag: "ProductGraphServiceName"
	configValue: xxx // eg: "ProductGraph"
}
{
	configKey: "StockLocationHandlerService"
	configTag: xxx // stockLocationHandlerServiceNameTag, eg: "StockLocationStandard"
	configValue: {
		serviceName: xxx // eg: "StockLocationStandard", this is the actual deployed service name
	}
}

StockLocationRecord

Records which Handler manages each stock location

{
	stockLocationId
	stockLocationHandlerServiceNameTag
}
  • partition key: stockLocationId
  • sort key: (none)

Service - Products Graph

Nodes

{
	nodeLabel: "{StockLocationManagerLib.STOCKLOCATION_GRAPH_NODE_LABEL}", // "stockLocation"
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			stockLocationId: {
				identifier: true, // create unique id from translation
			},
			stockLocationHandlerServiceNameTag: {
				immutable: true,
			},
		},
	}
}

Basic node schemas

{
	nodeLabel: "{StockLocationManagerLib.STOCKLOCATION_GRAPH_NODE_LABEL}"
	schema: {
		identifier: true,
		restrictProperties: true,
		restrictRelationships: true,
		properties: {
			stockLocationId: {
				identifier: true,
			},
			stockLocationHandlerServiceNameTag: {
				immutable: true,
			},
		},
	}
}

Schema comes from BasicNodeSchemaLib

  1. deliveryMethodPropertyLabel
  2. deliveryMethodProperty

Complex Filter requests

  • Not yet used at the Manager level, would send requests to all handlers, could perhaps setup to automatically pass on processLogical requests to all handlers, and not have a processLogical function in the Manager service

Working documents

Stock Location Manager