How Delivery Works¶
Understanding Mycel's delivery model helps set the right expectations.
The Store-and-Forward Model¶
Mycel uses Delay-Tolerant Networking (DTN) - messages are stored on devices and forwarded when opportunities arise.
graph LR
A[Your Phone] -->|Encounter| B[Relay Phone]
B -->|Carries message| B
B -->|Encounter| C[Friend's Phone]
C -->|ACK| B
B -->|ACK| A
- Store - Your message is stored on your device
- Forward - When you encounter another Mycel user, the message is handed off
- Repeat - That device stores and forwards to others
- Deliver - Eventually the message reaches your friend
- Acknowledge - A confirmation travels back to you
Delivery Times¶
| Scenario | Typical Time |
|---|---|
| Same room/building | Seconds to minutes |
| Same neighborhood | Minutes to hours |
| Same city | Hours |
| Different cities | Hours to days |
| Remote/sparse areas | Days or longer |
No guarantees
If there's no chain of Mycel users between you and your recipient, the message will wait indefinitely. This is a fundamental property of mesh networking.
What Affects Delivery Time?¶
Distance¶
More physical distance = more hops needed = longer delivery.
User Density¶
More Mycel users in an area = more relay opportunities = faster delivery.
Movement¶
People moving around create more encounters. A message might travel across a city by riding along with commuters.
Time of Day¶
More active hours (daytime, rush hour) = more encounters.
Multi-Path Delivery¶
Mycel sends your message via multiple paths simultaneously:
- Nearby (Bluetooth/Wi-Fi) - Direct device-to-device
- Nostr (Internet relay) - If both you and recipient have internet
The first path to succeed "wins" - duplicates are automatically filtered.
Message Expiration¶
Messages have a time-to-live (TTL). If not delivered within the TTL, the message expires and is removed from the network.
| Message Type | Default TTL |
|---|---|
| Direct Messages | 24 hours |
| Group Invites | 7 days |
| Group Updates | 24 hours |
| Channel Messages | 4 hours |
Expired messages show status EXP in the app.
Acknowledgments (ACKs)¶
When your message is delivered:
- Recipient's device generates an ACK
- ACK travels back through the mesh (or via internet)
- Your app updates the message status to "Delivered"
ACKs help Mycel learn which routes work best for future messages.
Tips for Reliable Delivery¶
- Keep the app running - Background operation is essential
- Grant all permissions - Especially background location
- Don't force-stop the app - Let it run
- Be patient - Mesh delivery takes time
- Encourage friends to use Mycel - More users = better mesh
Comparison with Traditional Messaging¶
| Feature | Traditional (WhatsApp, etc.) | Mycel |
|---|---|---|
| Requires internet | Yes | No |
| Delivery time | Instant | Seconds to days |
| Central server | Yes | No |
| Works offline | No | Yes |
| Guaranteed delivery | Yes (when online) | Best-effort |