Professional Documents
Culture Documents
Objective
Architecture Solution
Assumptions
Micro Service Processing Logic
Error Processing
Republishing the invoice message
Narvar Environment Details
Objective
As part of retiring OSB we need to replace the OSB flow for Narvar Order API call to move from ATG to micro service layer. Micro service layer
will process queuing.OMS.ORDER_TRANSACTION Kafka topic messages which is published by OMS for each status event. Currently ATG is
calling Narvar Order API during invoice message and micro service will only process invoiced-Shipped event messages from Kafka topic.
Architecture Solution
Micro service solution flow is defined in below with various options and as part of architecture review option 2 is agreed upon solution flow.
Assumptions
1. GIH service is available in lower environment during micro service development.
2. GIH service will deploy their chnages on or before order api micro service move to production.
3. CI/CD pipeline will be ready by the time development is done.
4. Narvar Order API lower environment service will be available and has same logic as prod environment.
Error Processing
When Narvar service is down or any internal server error is returned then these errors are considered as reprocess able, which means
kafka topic offset is not committed.
When exception happens while fetching KMS keys or decrypting the message then these errors are non reprocess able and hence will
be pushed the message to DLQ. Refer how to resend invoice message for reprocessing the DLQ messages.
When exception happens while converting the message to avro schema, message is pushed to DLQ. Refer how to resend invoice
message for reprocessing the DLQ messages.
While invoking GIH service if GIH service throws any exceptions based on the error code message is considered for reprocessing or
pushing the message to DLQ. Refer how to resend invoice message for reprocessing the DLQ messages.
While translation if any error occurs push the message to DLQ. Refer how to resend invoice message for reprocessing the DLQ
messages.