Skip to content

This monorepo contains multiple tools for testing and monitoring

License

Notifications You must be signed in to change notification settings

xmtp/xmtp-qa-testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

XMTP QA Testing Suite

This monorepo contains a comprehensive collection of tools for testing and monitoring the XMTP protocol and its implementations.

Test Status

Test Suite Dev Network Status Production Network Status Run frequency
πŸš€ Performance Dev Production Every 30 min
πŸ“¬ Delivery Dev Production Every 30 min
πŸ‘‹ Gm TS_Gm_dev TS_Gm_production Every 30 min
🌎 Geolocation Dev Production Every 30 min

Performance dashboard

performance dashboard

Core SDK Operations Performance

Operation Description Avg (ms) Target Status
createDM Creating a direct message conversation 254-306 <500ms βœ… On Target
sendGM Sending a group message 123-132 <200ms βœ… On Target
receiveGM Receiving a group message 90-94 <200ms βœ… On Target
receiveGroupMessage Processing group message streams 119-127 <200ms βœ… On Target
updateGroupName Updating group metadata 105-108 <200ms βœ… On Target
syncGroup Syncing group state 78-89 <200ms βœ… On Target
addMembers Adding participants to a group 238-280 <500ms βœ… On Target
removeMembers Removing participants from a group 147-168 <300ms βœ… On Target
inboxState Checking inbox state 36 <100ms βœ… On Target

Note: Based on data from 79 measured operations in the us-east testing environment.

Group Operations Performance by Size

Size Create(ms) Send(ms) Sync(ms) Update(ms) Remove(ms) Target(Create) Status
50 990 71 61 81 140 <2,000ms βœ… On Target
100 1,599 67 66 91 182 <2,000ms βœ… On Target
150 2,956 72 85 104 183 <4,000ms βœ… On Target
200 4,598 73 103 139 211 <5,000ms βœ… On Target
250 5,983 76 120 164 234 <7,000ms βœ… On Target
300 8,707 81 321 255 309 <9,000ms βœ… On Target
350 9,826 79 132 228 368 <11,000ms ⚠️ Performance Concern
400 11,451 84 170 427 501 <15,000ms ⚠️ Performance Concern
450 - - - - - - ❌ Severe impact

Note: Performance increases significantly beyond 350 members, which represents a hard limit on the protocol.

Network performance

Performance Metric Current Performance Target Status
Server Call Response 78.4ms avg <100ms P95 βœ… On Target
TLS Handshake 83.6ms avg <100ms P95 βœ… On Target
Message Processing 212.5ms avg <300ms end-to-end βœ… On Target

Note: Performance metrics based on us-east testing on dev and production network.

Regional Network Performance

Region Server_Call(ms) TLS_Handshake(ms) ~ us-east Status
us-east 276.6 87.2 Baseline βœ… On Target
us-west 229.3 111.1 -15.6% βœ… On Target
europe 178.5 111.4 -33.2% βœ… On Target
us 155.7 121.0 -40.8% βœ… On Target
asia 411.0 103.7 +46.5% ⚠️ Performance Concern
south-america 754.6 573.1 +160.3% ⚠️ Performance Concern

Note: Regional performance testing shows significant latency increases in south-america (+160.3%) and asia (+46.5%) regions compared to the us-east baseline.

Message delivery testing

Test Area Current Performance Target Status
Stream Delivery Rate 100% successful 99.9% minimum βœ… On Target
Poll Delivery Rate 100% successful 99.9% minimum βœ… On Target
Stream Order 100% in order 100% in order βœ… On Target
Poll Order 100% in order 100% in order βœ… On Target
Offline Recovery Rate 100% successful 100% successful βœ… On Target
Offline Recovery Order 100% in order 100% in order βœ… On Target

Note: Testing regularly in groups of 40 active members listening to one user sending 100 messages

Stream vs. Poll reliability

Retrieval Method Reliability Latency Use Case Status
Stream-based 100% delivery Real-time Active conversations βœ… On Target
Poll-based 100% delivery Delayed (30s max) Backup/recovery βœ… On Target
Hybrid approach 100% delivery Optimized Recommended for Agents βœ… On Target

Note: A hybrid approach using streams with poll-based verification provides the most reliable message delivery guarantee.

Cross-SDK Testing

SDK Combination Test Focus Status
Node SDK ↔ Node SDK Agent-to-Agent communication βœ… Verified
Web ↔ Node SDK Client-to-Agent communication βœ… Verified
React Native ↔ Node SDK Client-to-Agent communication βœ… Verified

Note: Cross-SDK was tested using the operations describe above and is not covering all edge cases.

Success criteria summary

Metric Current Performance Target Status
Core SDK Operations All within targets Meet defined targets βœ… On Target
Group Operations ≀300 members ≀300 members on target βœ… On Target
Network Performance All metrics within target Meet defined targets βœ… On Target
Message Delivery 100% 99.9% minimum βœ… On Target
Stream Message Loss 100% 99.9% minimum βœ… On Target
Poll Message Loss 100% 99.9% minimum βœ… On Target
Message Order 100% 100% in order βœ… On Target
Cross-SDK Compatibility 100% 100% operation success βœ… On Target
South-america & Asia more than 40% <20% difference ⚠️ Performance Concern
US & Europe less than 20% variance <20% difference βœ… On Target

Disclaimers

  • Ideal Network Conditions: Real-world performance may vary significantly when the network is under stress or high load.
  • Pre-Release Status: This assessment reflects the current development version targeting the 4.0.0 stable release. Optimizations and improvements are ongoing.

Tools & Utilities

Development

Prerequisites

  • Node.js (>20.18.0)
  • Yarn 4.6.0

Installation

git clone https://github.com/xmtp/xmtp-qa-testing
cd xmtp-qa-testing
yarn install

Resources