am designing a new real-time auction web application, similar to ebay but 
more specialized. From initial research I feel that a solution based on 
Node JS/Express JS/Redis or MongoDB would work well.

The auctions will run in real time, and multiple auctions can occur 
concurrently. Users can also be active in multiple auctions at the same 
time. Users will submit bids and view the progress of the auction through a 
web browser, receiving real-time updates throughout the auction. As these 
are specialized auctions there is a more complex than usual bid methodology 
that may take a non-negligible amount of processing time when a new bid is 
submitted.

Having thought through the proposed architecture I realized that 
independent auctions will end up blocking each other due to the 
single-threaded nature of Node JS and the databases. For example, consider 
that there are two live auctions; Auction A and Auction B. If a user 
submits a bid in Auction A, whilst this bid is being processed by the 
server another user is essentially blocked from submitting a bid in Auction 
B. This is not ideal as the two auctions are completely independent of each 
other and do not share any state. As the site hosts more concurrent 
auctions this delay will increase.

Is there any way that I can architect the application so that this is not 
the case and that multiple auctions can run in a truly concurrent fashion?

One idea that I had was to somehow dynamically create a new instance of the 
application along with its own database on the creation of every new 
auction. I am unsure how practical this is or if there are other tried and 
tested techniques for dealing with this kind of problem.

A further consideration is to be able to scale the application as demand 
grows.

Any advice would be greatly appreciated.

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to