Skip to content

Meesholink architecture

Service Details

Table 7
Service Name
Team
BU
Primary Owner
Secondary Owner
Github Repo
Language
Deployments
Meesholink
Marketplace
Supply
Atul Tiwari <>
Lokesh Potta <>
Java
meesholink-service , meesholink-consumer , meesholink-edge-proxy, meesholink-retry-utils
There are no rows in this table

High Level Design

Open MeeshoLink_Latest_HLD-20240830-095611.jpg
image.jpeg failed to upload
Meesholink HLD

Documentation And API Contract

Marketplace-OMS API Contract :
WAAS-Marketplace-OMS API Contract :
Order Parallel Processing Doc :

API Level Information

Table 8
API Endpoint
Deployment
Flow
Priority
BAU Throughput(Mean, Max)
Latency - P99(Mean,Max)
Latency - P90(Mean, Max)
Latency - P50(Mean, Max)
EP - Rate Limits
Downstream Calls
Upstream Callers
Bottlenecks in Latency
Risks and Notes
Column 14
1
/v1/token/refresh
meesholink-service
external
P0
0.287, 0.717
6.41 ms, 449 ms
5.23 ms, 435 ms
2.52 ms,6.07 ms
5 RPM/Supplier
NA
/v1/token/refresh
2
/v1/products/inventory
meesholink-service
external
P0
6.21, 15.3
1.32 s, 1.99 s
1.05 s, 1.85 s
213 ms, 1.29 s
50 RPM/Supplier
/v1/variation-identifier/fetch , /v1/inventory/update,
/v3/inventory/update
/v1/products/inventory
/v1/inventory/update
taking 1461 ms
3
/v1/products-list
meesholink-service
external
P0
0.431, 3.32
408 ms, 4.72 s
290 ms, 2.20 s
167 ms, 967 ms
50 RPM/Supplier
/v1/supplier-products/fetch , /api/v2/product/aggregation
/v1/products-list
/api/v2/product/aggregation
taking 633 ms
We are seeing variation in P99 & spikes (max=4.72 s)
4
/v1/orders-list
meesholink-service
external
P0
1.76, 3.31
288 ms, 4.41 s
124 ms, 1.42 s
34.6 ms, 222 ms
50 RPM/Supplier
/v1/variation-identifier/fetch ,
/1.0/fetch/sub-order/details
/v1/orders-list
/1.0/fetch/sub-order/details
taking 372 ms
We are seeing variation in P99 & spikes (max=4.41 s)
5
/v1/orders
meesholink-service
external
P0
0.399, 1.98
304 ms, 9.65 s
156 ms, 6.5 s
53.5 ms, 517 ms
20 RPM/Supplier
/v1/variation-identifier/fetch , /1.0/fetch/sub-order/details
/v1/orders
We are seeing variation in P99 & spikes (max= 9.65 s)
6
/v1/orders/accept
meesholink-service
external
P0
0.494, 1.83
146 ms, 12 s
71.9 ms, 570 ms
43.6 ms, 213 ms
30 RPM/Supplier
/1.0/edit-sub-order/sos/request , /1.0/edit-sub-order/sos/parallel/request
/v1/orders/accept
7
/v1/orders/cancel
meesholink-service
external
P0
0.0583, 0.167
53.7 ms, 79.8 ms
49.7 ms, 78 ms
38.8 ms, 70 ms
30 RPM/Supplier
/1.0/edit-sub-order/sos/request , /1.0/edit-sub-order/sos/parallel/request
/v1/orders/cancel
8
/v1/orders/manifest
meesholink-service
external
P0
0.356, 2.58
103 ms, 842 ms
58 ms, 365 ms
33.9 ms, 225 ms
30 RPM/Supplier
/api/v1/supplier/get , ​/1.0/sub-order-label/sos/get , /1.0/sub-order-label/sos/parallel/get
/v1/orders/manifest
We are seeing slight variation in P99 & spikes (max= 842 ms)
9
/v1/returns-list
meesholink-service
external
P0
0.266, 1.45
368 ms, 9.45 s
282 ms, 680 ms
129 ms, 425 ms
50 RPM/Supplier
/v1/variation-identifier/fetch , /supplier/1.0/returns/fetch-return-orders
/v1/returns-list
We are seeing slight variation in P99 & spikes (max= 9.45 s)
10
/v1/returns
meesholink-service
external
P0
0.199, 1.82
56.2 ms, 1.17 s
40.4 ms, 218 ms
25.9 ms, 55 ms
50 RPM/Supplier
/v1/variation-identifier/fetch , /v1/internal/fetch/return-exchange-detail
/v1/returns
11
/v1/orders/branded/packaging
meesholink-service
external
P0
0.0887, 0.983
118 ms, 593 ms
104 ms, 530 ms
85.9 ms, 238 ms
20 RPM/Supplier
/supplier/1.0/branded/packaging/bulk/scans
/v1/orders/branded/packaging
12
/v1/waas/token/refresh
meesholink-service
external
P0
0.0167, 0.0167
4.95 ms, 4.95 ms
4.5 ms, 4.5 ms
2.5 ms, 2.5 ms
5 RPM/Warehouse
13
/v1/waas/orders
meesholink-service
external
P0
0.0421, 0.333
132 ms, 4.97 s
117 ms, 4.7 s
77.4 ms, 3.5 s
50 RPM/Warehouse
/1.0/fetch/sub-order/details
/v1/waas/orders
14
/v1/waas/orders/accept
meesholink-service
external
P0
0.0726, 0.233
82.1 ms, 694 ms
75.8 ms, 640 ms
50.4 ms, 194 ms
50 RPM/Warehouse
/1.0/edit-sub-order/sos/parallel/request
/v1/waas/orders/accept
15
/v1/waas/orders/manifest
meesholink-service
external
P0
0.352, 1.18
90 ms, 393 ms
61 ms, 163 ms
41.6 ms, 65.4 ms
50 RPM/Warehouse
/api/v1/supplier/get , ​/1.0/sub-order-label/sos/parallel/get
/v1/waas/orders/manifest
16
/v1/waas/products/inventory
meesholink-service
external
P0
0.0859, 0.233
27 ms, 224 ms
23.8 ms , 213 ms
13.2 ms, 105 ms
50 RPM/Warehouse
/v1/variation-identifier/fetch , /v1/inventory/update
/v1/waas/products/inventory
17
/v1/waas/returns
meesholink-service
external
P0
0.203, 0.617
72.2 ms, 4.67 s
42.4 ms, 1.7 s
24.5 ms, 70 ms
50 RPM/Warehouse
/v1/variation-identifier/fetch , /v1/internal/fetch/return-exchange-detail
/v1/waas/returns
We are seeing variation in P99 & spikes (max= 4.67 s)
There are no rows in this table

Consumers/Producers

Table 9
Topic
Topic Owner
Producer Deployment
Consumer Deployment
MQ/MSK
Priority
Throughput (messages/sec)(Mean, Max)
Downstream Calls
Risks and Notes
Column 10
1
supplier_orders.sub_order.creation
SOS Team FNE
N.A.
meesholink-consumer
MQ
P0
54.9 , 305
/v1/variation-identifier/fetch
Consumer Ack in all cases. No retry or DLQ is present. Risk - Order Loss Recovery - Order Reconciliation can be done via Meesholink API
2
supplier_orders.sub_order.status_update
SOS Team FNE
N.A.
meesholink-consumer
MQ
P0
510, 1.51 k
N.A.
Consumer Ack in all cases. No retry or DLQ is present. Risk - status mismatch
**Only event transformation takes place, chances of event loss ~0
3
sub_order_processing_request_status_event_topic
SOS Team FNE
N.A.
meesholink-consumer
MQ
P0
5.12 , 23
N.A.
Consumer Ack in all cases. No retry or DLQ is present. Risk - polling event loss **Only event transformation takes place, chances of event loss ~0
4
user_orders_temp.shipment.label_update
SOS Team FNE
N.A.
meesholink-consumer
MQ
P0
3.06 , 23.7
N.A.
Consumer Ack in all cases. No retry or DLQ is present. Risk - label url and awb will not be sent **Only event transformation takes place, chances of event loss ~0
5
supplier_orders.shipment.cancelled
SOS Team FNE
N.A.
meesholink-consumer
MQ
P0
1.59 , 40.4
N.A.
No retry or DLQ is present. Risk - shipment cancellation event loss **Only event transformation takes place, chances of event loss ~0
6
oms_return_tracking_event_topic
RETURNSTeam FNE
N.A.
meesholink-consumer
MQ
P0
12.1, 90.7
/v1/variation-identifier/fetch
Consumer Ack in all cases. No retry or DLQ is present. Risk - Return-Create event Loss Recovery - Return Orders Reconciliation can be done via Meesholink API
7
supplier_store.supplier_warehouse_onboarding
SOS Team FNE
N.A.
meesholink-consumer
MQ
P1
0.0000116, 0.0168
N.A.
8
warehouse_service.sku_masters
SOS Team FNE
N.A.
meesholink-consumer
MQ
P0
0.0925, 19.8
N.A.
No retry or DLQ is present. Risk - Master product sync event loss
9
marketplace_oms_third_party_api_details
Supplier Services Team
meesholink-consumer
meesholink-consumer
MQ
P0
10.8 , 49.3
N.A.
10
marketplace_oms_third_party_api_details_retry
Supplier Services Team
meesholink-retry-utils
meesholink-consumer
MQ
P0
2.5, 98.9
N.A.
Risk - REDIS failures can lead to halt of Third party webhook Retries
There are no rows in this table

Downstreams

Table 10
Downstream Call
Downstream Service
Circuit Breaker Available
Failure Behaviour
Column 5
1
/v1/variation-identifier/fetch , /v1/supplier-products/fetch , /v1/inventory/update,/v3/inventory/update, /v1/variation-identifiers/{supplier_id}/sync
inventory-admin
Not Available
Hard Failure on all exceptions
2
/api/v2/product/aggregation
taxonomy-read
Not Available
Hard Failure on all exceptions
3
/api/v1/supplier/get
supplier-store
Not Available
Hard Failure on all exceptions
4
/1.0/fetch/sub-order/details , /1.0/edit-sub-order/sos/request , /1.0/sub-order-label/sos/get, /1.0/sub-order-label/sos/parallel/get, /1.0/edit-sub-order/sos/parallel/request
supplier-order-service
Not Available
Hard Failure on all exceptions
5
/v1/internal/fetch/return-exchange-detail
osm-supply
Not Available
Hard Failure on all exceptions
6
/supplier/1.0/branded/packaging/bulk/scans , ​/supplier/1.0/returns/fetch-return-orders
poa
There are no rows in this table

Databases



MySQL Host : msql-supl-ssvc-meesholink-prd-ase1
Current Configuration :
Table 11
Property
Provisioned Usage
Current Usage
vCPUs
2
2
Memory
7.22 GB
3.82 GB
SSD storage
50 GB
23.5 GB (Cache + Usage)
CPU Utilisation
100%
35% (Max spike < 50%)
Disk Read OPs
1.5K
~0K
Disk Writes OPs
1.5K
~0.12K
There are no rows in this table
Table 12
Table Name
Database Name
Database Type
Deployment
Throughput RPS (mean, max)
Data Size
Risk for Scaling 3X Writes
Risk for Scaling 3X Reads
Column 9
1
oms_client_details
meesholink
Mysql
meesholink-service, meesholink-consumer
0.0195, 0.0333
~0.0000001 GB
NO
NO
2
oms_supplier_details
meesholink
Mysql
meesholink-service, meesholink-consumer
0.549, 1.42
0.002 GB
NO
NO
3
polling_event_aggaregation
meesholink
Mysql
meesholink-service, meesholink-consumer
0.129, 2.32
22.238 GB
NO
NO
4
wms_warehouse_supplier_mapping
meesholink
Mysql
meesholink-service, meesholink-consumer
0.131, 0.667
~0.0000001 GB
NO
NO
5
wms_warehouse_details
meesholink
Mysql
meesholink-service, meesholink-consumer
0.248, 1.67
~0.0000001 GB
NO
NO
There are no rows in this table

Important Links And Resources



Grafana Dashboard :

Meesholink-Service :
Meesholink-Consumer :
Edge-Proxy-Meesholink :

Instrumentation Dashboard :

Presto-Audit Tables :



Table 13
Table Name
Purpose
silver.meesholink__oms_client_details
All the OMS partners onboarded to meesholink can be found here.
silver.meesholink__oms_supplier_details
All the Marketplace Suppliers onboarded to meesholink can be found here
silver.msg_price__oms_order_audit_logs
All the OMS partners orders related interactions are recorded here for auditing
There are no rows in this table

Recent Recurrent Issues and Known Risks

Inventory Updates API is currently sync API for marketplace-oms suppliers is latent.
The Marketplace suppliers getting orders despite having inventory zero at oms-partner. When the inventory become zero and later order-cancellation happens leading to increase inventory in meesho-inventory system while it is not being updated in the OMS partner inventory system.
Order processing request failures with reason “one request already inprogress“ for non-parallel processing enabled supplier are significantly high.
Meesholink-Third-Party topic lag had increased 2 weeks before , which we fixed by increasing the consumer concurrency and batch fetch size.

Risks for Scale

MYSQL is single point of failure and may lead to event drops.
REDIS failures can lead to drop of polling events, orders processing API failure for parallel order processing and third party retries will be halted as well.
Lose of failed suborder informations in the polling event for the non-parallel processing enabled suppliers with recent SOS development.
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.