Picktask- Wholesale Order Infrastructure

The Infrastructure page lists and explains the Infra components which are required for the code to run properly.

Components

Component

Description

Activity

Ref

<<SSM Attribute>>

SSM keys for Discounts to protect the content

New

SSM Key

<<Config Service>>

New application configuration for Wholesale Order Handler

New

Configuration(from config service)

<<AWS ECS Service>>

New Services to process the wholesale orders

New

AWS ECS Services

<<AWS ECS Task>>

New Tasks to process the wholesale orders

New

AWS ECS Tasks

<<AWS DynamoDB Table>>

New Table to store Order details

New

AWS Order DynamoDB Table

<<AWS S3 Details>

S3 bucket to store the Json file

New

AWS S3 Details

<<AWS SQS Details>

SQS details

New

AWS SQS Details

<<AWS DLQ Details>

DLQ details

New

AWS DLQ Details

<<AWS Cloudwatch Details>

Cloudwatch details

New

Cloudwatch Details

SSM Key

The security credentials will be stored in the following security credentials in the digital Jenkins. These credentials are used to populate the SSM key below in the respective environments.

storepick_wholesale_order_service_secret
storepick_product_service_secret

values

"storepick_wholesale_order_service_secret": {
            "CORRECT_STRUCTURE": {
                "API_KEY": "__EXISTS__",
                "AUTHORISATION": "__EXISTS__",
            }
        }

"storepick_product_service_secret": {
            "CORRECT_STRUCTURE": {
                "API_KEY": "__EXISTS__",
                "AUTHORISATION": "__EXISTS__",
            }
        }

Configuration(from config service)

Attribute

Description

wholesale-order-transfer-service.json

Wholesale Order Handler Transfer Adapter configuration

storepick-wos-aggregator.json

Wholesale Order Handler Aggregator configuration

 wholesale-order-transfer-service.json
 {
     "MORI_BASE_URL": "https://sit-api.morrisons.com",
     "WHOLESALEORDERSHIP_URL": "wholesaleorder/v1/customers",
     "WHOLESALEORDERSERVICE_URL": "wholesaleorder/v1/customers",
     "CUSTOMER_ID": "homedelivery_sit",
     "S3_BUCKET": "m$ENV.xxwmm.storepick.wos-ord-hdlr.eeeeeeeeee",
     "DYNAMODB": {
         "TABLE_NAME": "$ENV.xxwmm.storepick.wos-ord-hdlr-orders",
         "HASH_KEY": "orderId",
         "SORT_KEY": "transferId"
     },
     "SQS": {
         "QUEUE_NAME": "sqs-euw1-$ENV-storepick-wos-ord-hdlr-ord-trf-002",
         "NO_OF_THREADS": 1,
         "BUFFER_SIZE": 1,
         "VISIBILITY_TIMEOUT": 5,
         "FLUSH_TIMEOUT": 120,
         "WAIT_TIME": 20
     },
     "SLEEP": 0.4
}
storepick-wos-aggregator.json
{
    "CUTOFF_START_HOURS": 21,
    "CUTOFF_START_MINS": 30,
    "CUTOFF_END_HOURS": 6,
    "CUTOFF_END_MINS": 0,
    "S3_BUCKET": "m$ENV.xxwmm.storepick.wos-ord-hdlr.eeeeeeeeee",
    "S3_BUCKET_BASE_PATH": "wholesale-order-transfer/",
    "ORDER_DYNAMO_DB": "$ENV.xxwmm.storepick.wos-ord-hdlr-orders",
    "PICKS_DYNAMO_DB": "$ENV.xxwmm.storepick.osp-eh-picks-dummy",
    "TIME_TO_LIVE": "500",
    "BATCH_SIZE": "2000",
    "MORI_BASE_URL": "https://sit-api.morrisons.com",
    "PRODUCTELASTICSEARCH_URL": "product/v1/items",
    "ORDER_SQS": {
        "QUEUE_NAME": "sqs-euw1-$ENV-storepick-wos-ord-hdlr-ord-agg-002",
        "NO_OF_THREADS": 1,
        "BUFFER_SIZE": 1,
        "VISIBILITY_TIMEOUT": 15,
        "MAX_NUMBER": 10,
        "MESSAGES_PER_BATCH": 15000,
        "WAIT_TIME": 20,
        "DELETE_CHUNK_SIZE": 10,
        "BATCH_TIMEOUT": 2
    },
    "READY_SQS": {
        "QUEUE_NAME": "sqs-euw1-$ENV-storepick-wos-ord-hdlr-ord-trf-002",
        "NO_OF_THREADS": 1,
        "BUFFER_SIZE": 1,
        "VISIBILITY_TIMEOUT": 1800,
        "MAX_NUMBER": 10,
        "MESSAGES_PER_BATCH": 15000,
        "WAIT_TIME": 20,
        "DELETE_CHUNK_SIZE": 10,
        "BATCH_TIMEOUT": 2
    },
    "KAFKA": {
        "CONSUMER_GROUP_ID": "save_to_order_db",
        "BOOTSTRAP_SERVER": "b-1.picktask-test.k8bixh.c5.kafka.eu-west-1.amazonaws.com:9094,b-2.picktask-test.k8bixh.c5.kafka.eu-west-1.amazonaws.com:9094,b-3.picktask-test.k8bixh.c5.kafka.eu-west-1.amazonaws.com:9094",
        "TOPICS": [
            "picktasks-new"
        ]
    }
}

AWS ECS Services

Wholesale Order Handler Transfer Adapter ECS Service

Environment

Aws ECS Service

dev

svc-euw1-dev-storepick-wos-ord-hdlr-ord-trf-002

sit

svc-euw1-sit-storepick-wos-ord-hdlr-ord-trf-002

prd

svc-euw1-prod-storepick-wos-ord-hdlr-ord-trf-002

Wholesale Order Handler Writer ECS Service

Environment

Aws ECS Service

dev

svc-euw1-dev-storepick-wos-ord-hdlr-ord-writer-002

sit

svc-euw1-sit-storepick-wos-ord-hdlr-ord-writer-002

prd

svc-euw1-prod-storepick-wos-ord-hdlr-ord-writer-002

AWS ECS Tasks

Wholesale Order Handler Transfer Adapter ECS Task

Environment

Aws ECS Task

dev

storepick-ecs-wos-ord-hdlr-ord-trf-dev-002

sit

storepick-ecs-wos-ord-hdlr-ord-trf-sit-002

prd

storepick-ecs-wos-ord-hdlr-ord-trf-prod-002

Wholesale Order Handler Aggregator ECS Task

Environment

Aws ECS Task

dev

storepick-ecs-wos-ord-hdlr-ord-agg-dev-002

sit

storepick-ecs-wos-ord-hdlr-ord-agg-sit-002

prd

storepick-ecs-wos-ord-hdlr-ord-agg-prod-002

Wholesale Order Handler Post Cut Off Aggregator ECS Task

Environment

Aws ECS Task

dev

storepick-ecs-wos-ord-hdlr-ord-agg-cut-off-dev-002

sit

storepick-ecs-wos-ord-hdlr-ord-agg-cut-off-sit-002

prd

storepick-ecs-wos-ord-hdlr-ord-agg-cut-off-prod-002

Wholesale Order Handler Writer ECS Task

Environment

Aws ECS Task

dev

storepick-ecs-wos-ord-hdlr-ord-writer-dev-002

sit

storepick-ecs-wos-ord-hdlr-ord-writer-sit-002

prd

storepick-ecs-wos-ord-hdlr-ord-writer-prod-002

AWS Order DynamoDB Table

Environment

Picks DB DynamoDb Table

dev

dev.xxwmm.storepick.osp-eh-v2

sit

sit.xxwmm.storepick.osp-eh-v2

prd

prod.xxwmm.storepick.osp-eh-v2

Environment

Order DB DynamoDb Table

dev

dev.xxwmm.storepick.wos-ord-hdlr-orders

sit

sit.xxwmm.storepick.wos-ord-hdlr-orders

prd

prd.xxwmm.storepick.wos-ord-hdlr-orders

AWS S3 Details

Wholesale Order AWS S3

Environment

Aws S3

dev

mdev.xxwmm.storepick.wos-ord-hdlr.eeeeeeeeeeee

sit

msit.xxwmm.storepick.wos-ord-hdlr.eeeeeeeeeeee

prd

mprod.xxwmm.storepick.wos-ord-hdlr.zzzzzzzzzzzz

AWS SQS Details

Wholesale Order Handler Order SQS

Environment

Aws Order SQS

dev

sqs-euw1-dev-storepick-wos-ord-hdlr-ord-agg-002

sit

sqs-euw1-sit-storepick-wos-ord-hdlr-ord-agg-002

prd

sqs-euw1-prod-storepick-wos-ord-hdlr-ord-agg-002

Wholesale Order Handler Ready SQS

Environment

Aws Ready SQS

dev

sqs-euw1-dev-storepick-wos-ord-hdlr-ord-trf-00

sit

sqs-euw1-sit-storepick-wos-ord-hdlr-ord-trf-00

prd

sqs-euw1-prd-storepick-wos-ord-hdlr-ord-trf-00

AWS DLQ Details

Wholesale Order Handler Order dlq

Environment

Aws Order DLQ

dev

sqs-euw1-dev-storepick-wos-ord-hdlr-ord-agg-deadletter-002

sit

sqs-euw1-sit-storepick-wos-ord-hdlr-ord-agg-deadletter-002

prd

sqs-euw1-prod-storepick-wos-ord-hdlr-ord-agg-deadletter-002

Wholesale Order Handler Ready dlq

Environment

Aws Ready DLQ

dev

sqs-euw1-dev-storepick-wos-ord-hdlr-ord-trf-deadletter-002

sit

sqs-euw1-sit-storepick-wos-ord-hdlr-ord-trf-deadletter-002

prd

sqs-euw1-prod-storepick-wos-ord-hdlr-ord-trf-deadletter-002

Cloudwatch Details

Component

Group

Prefix

Alarm

wos_order_aggregator

clg-euw1-dev-storepick-wos-ord-hdlr-ord-agg-002

OSP_WOS_ORD_HNDLR_ORD_AGGREGATOR_ALARM

cla-euw1-dev-storepick-wos-ord-hdlr-ord-agg-002-001-Alarm

wos_order_post_cut_off_aggregator

clg-euw1-dev-storepick-wos-ord-hdlr-ord-agg-cut-off-002

OSP_WOS_ORD_HNDLR_POST_CUT_OFF_ALARM

cla-euw1-dev-storepick-wos-ord-hdlr-ord-agg-cut-off-002-001-Alarm

wos_order_transfer

clg-euw1-dev-storepick-wos-ord-hdlr-ord-trf-002

OSP_WOS_ORD_HNDLR_TRANSFER_ALARM

cla-euw1-dev-storepick-wos-ord-hdlr-ord-trf-002-001-Alarm

wos_order_writer

clg-euw1-dev-storepick-wos-ord-hdlr-ord-writer-002

OSP_WOS_ORD_HNDLR_WRITER_ALARM

cla-euw1-dev-storepick-wos-ord-hdlr-ord-writer-002-001-Alarm