Loop/Architecture: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 42: Line 42:
=== User Rejects Call ===
=== User Rejects Call ===
[[File:loop-reject-call.png|center|Call Rejected]]
[[File:loop-reject-call.png|center|Call Rejected]]
'''Note that the exact means by which Bob receives pending call status is still an open issue -- periodic polling is easy, but might not scale as well as we'd like. Long polling is a potential improvement, but also has scaling implications. Ultimately, websockets may be the preferred approach here.'''


=== User Blocks "Call-Me" URL ===
=== User Blocks "Call-Me" URL ===

Revision as of 16:11, 18 March 2014

Design Goals

Underlying Technologies

Mozilla Technologies

The Loop project relies on a number of other technologies under development within Mozilla. These include the following:

Third-Party Technologies

  • Node.js for Loop server, at least through production

Open Issues

These technology choices will be moved into one of the preceding sections as decisions are made:

Network Architecture

Data Flows

User Connects

Endpoint Registration

User Generates "Call-Me" URL

"Call-Me" URL Generation

Non-User Clicks "Call-Me" URL

"Call-Me" URL Activation

User Rejects Call

Call Rejected

Note that the exact means by which Bob receives pending call status is still an open issue -- periodic polling is easy, but might not scale as well as we'd like. Long polling is a potential improvement, but also has scaling implications. Ultimately, websockets may be the preferred approach here.

User Blocks "Call-Me" URL

"Call-Me" URL Blocked

User Calls Other User

Loop user calls other Loop user

Client Architecture

Address Book

Server Architecture

Database Schema