Commodity EMP
Introduction
This document covers the details about the integration of SMDS Commodity -EMP platform.
Requirement statement
Maersk is planning to move to event-based integration between producers and consumers. Maersk setup a separate team to manage Event Management Platform (EMP) which will be responsible for environment setup and development activities related to EMP platform. Business will get benefit in terms of no message loss between producer and consumer, can be seamlessly integrated any new consumer or producer application with SMDS, less effort for integration activities, moving to cloud platform etc.
As part of modernization, SMDS Commodity is moving from on-prem to Azure Cloud, which means the maintenance of commodity application application i.e.; Create/Search/Get etc. will be hosted on Azure Cloud. As part of this EPIC, SMDS Commodity application will be integrated with EMP platform to produce Commodity events. Below are the requirements and the expected outcome of the first phase:
- Create AVRO schema for Commodity interface
- Review the schema with MIM team
- Work with EMP team in terms of schema review, schema registry, topic configuration, connectivity checks etc.
- POC to generate and push JSON message into Kafka topic
- Identify generic events needed for consumer core information edits
- Configure required events for KYC
- Work with different consumers for event consume testing if events are required
- Create Commodity publish services
- End to End testing
Commodity Producer Owner Info:
| Name | Email Address |
|---|---|
| Ashwini Kerkar | ashwini.kerkar@maersk.com |
| consumers | ||
|---|---|---|
| Athena | srikant.barik@lns.maersk.com | PROD |
| Athena Inland | Irene George irene.george@maersk.com | PROD |
Commodity Configuration Details :
Commodity EMP Message Details:
| Section | Field Name | Field Description | Data Type | Default Value | Nullable | Example |
|---|---|---|---|---|---|---|
| CommodityClassification | CommodityClassification | Commodity Message containing all the information about the commodity | Record | NA | False | |
| CommodityClassification | commodityId | Unique ID for the Commodity. Length 13 Alphanumeric char | String | null | False | AIZO787AMS90 |
| CommodityClassification | commodityCode | Commodity listing code value. Length 6 of Alphanumeric values. Example:0011AZ | String | null | False | 0011AZ |
| CommodityClassification | commodityName | Name for the commodity listing. | String | null | False | BULLS and COWS |
| CommodityClassification | commodityStatus | Commodity Status (Active or Inactive) | Enum | ACTIVE | False | ACTIVE |
| CommodityCodingSystem | commodityCodingSystemCode | Commodity Parent code . Length 4 of Alphanumeric values | String | null | False | 00AA |
| commodityCodingSystemName | Commodity Parent Name | String | null | False | Electronics Appliances | |
| commodityCodingSystemStatus | Commodity Parent Active or Inactive status. | Enum | ACTIVE | False | ACTIVE | |
| CommodityGroups | commodityGroupCode | Commodity Group code . Alphanumeric values. | String | False | ANIMAL FODDER | |
| commodityGroupName | Commodity Group Name. | String | null | False | ANIMAL FODDER | |
| commodityGroupStatus | Commodity Group Status. Active or Inactive | Enum | ACTIVE | False | ACTIVE | |
| CommodityGroupPurpose | commodityGroupPurposeCode | Commodity Group Type code . Alphanumeric values. | String | null | False | FPCM |
| commodityGroupPurposeName | Commodity Group Name. | String | null | False | FRUITS | |
| commodityGroupTypeOwner | Commodity Group Type Owner. | String | null | True | FPCM Owner | |
| commodityGroupPurposeStatus | Commodity Group Type Status | Enum | ACTIVE | False | ACTIVE | |
| CargoType | cargoTypeCode | Cargo type code, e.g. N for Normal or G for Garment on Hangers | Enum | False | YES | |
| cargoTypeName | Cargo type name, Example: DRY | String | NO | False | YES | |
| ReeferDetails | reeferContainerType | Reefer Container Type. Example: COMPRESSED | Enum | False | YES | |
| ReeferDetails | humidity | Reefer has Humidity or not. | String | False | False | YES |
| ReeferDetails | humidityPercentageMinimum | Refer Humidity min. percentage | Float | null | True | 20 |
| ReeferDetails | humidityPercentageMaximum | Refer Humidity max. Percentage | Float | null | True | 42 |
| ReeferDetails | O2PercentageMinimum | Min. O2 Percentage | Float | null | True | 80 |
| ReeferDetails | O2PercentageMaximum | Max. O2 Percentage | Float | null | True | 92 |
| ReeferDetails | co2PercentageMinimum | Min. CO2 Percentage | Float | null | True | 1.2 |
| ReeferDetails | co2PercentageMaximum | Max. CO2 Percentage | Float | null | True | 8.2 |
| ReeferDetails | drainHoles | Drain Holes available information | Enum | null | True | Closed |
| ReeferDetails | ventilation | Ventilation Information | Enum | null | True | Open |
| ReeferDetails | volumeUnitOfMeasure | Ventilation measurement unit. Example: 35 Cubic meter Square | Enum | null | False | CUBIC_METER |
| ReeferDetails | volumePerHourMinimum | Min. Ventilation Volume Information | Float | null | True | 24.5 |
| Reefer | volumePerHourMaximum | Max. Ventilation Volume Information | Float | null | True | 32.8 |
| Reefer | probeCount | Number Of Probes Information | Enum | null | True | One |
| Reefer | hasColdTreatmentRequirement | Cold Treatment Information | Bolean | False | True | YES |
| Reefer | temperatureUnitOfMeasure | Temperature measurement unit. Example: 42 Degree Fahrenheit | Enum | FAHRENHEIT | False | 5 |
| Reefer | degreesMinimum | Max. Temperature Range in Centigrade | temperatureUnitOfMeasure | null | False | 25 |
| Reefer | degreesMaximum | Min. Temperature Range in Fahrenheit. | temperatureUnitOfMeasure | null | False | 41 |
| Reefer | ethyleneFilterRequiredCount | Number of Ethylene filter available. | Enum | null | True | 2 |
| Reefer | reeferStatus | The status of Reefer | Enum | ACTIVE | False | ACTIVE |
| WeightDetails | equipmentSizeTypeCode | Equipment Size and Type | String | null | False | 20 TANK |
| WeightDetails | wightUnitOfMeasure | Weight Unit for minimum and maximum weight. For Eg Kgs | Enum | null | False | KILOGRAM |
| WeightDetails | weightMinimum | Minimum Weight in Kgs | Integer | null | True | 20 |
| WeightDetails | weightMaximum | Maximum Weight in Kgs | Integer | null | False | 80 |
| HSCommodity | HSCommodityCode | HS Code | String | null | False | |
| HSCommodity | HSCommodityName | Commodity HS Listing Name | String | null | False | |
| HSCommodity | HSCommodityCorrelationName | Correlation purpose of HS Listing with Commodity Details | String | null | False | Is equivalent of |
| HSCommodity | HSCommodityStatus | The status of Linked HS commodity. | Enum | ACTIVE | False | ACTIVE |
| TagTranslation | name | Commodity Tag Translation Name | String | null | False | English Translation |
| TagTranslation | language | Commodity Tag Translation Language | String | English | False | English |
| TagTranslation | type | Commodity Tag Translation Code Type | String | False | ALT_NAME |