Could eBay be built with Rails?

My friend and I (both new to RoR) were having a discussion today about whether or not you could build an exact replica of eBay using on Ruby on Rails. I think that it could in fact be done, or at least a very close model of the same concept. My friend seems to think that maybe in fact, it could not be done.

What are your thoughts? Could an eBay clone be built using only Ruby on Rails? What do you think would be the pitfalls of doing it? We are both pretty new to Rails, but the topic did certainly ignite me to do some thinking and searching into how it would be built and how it could be done.

I don't see any reason why this would be infeasible. What stumbling blocks did you and your friend see?

Sincerely,

Tom Lieber http://AllTom.com/ http://GadgetLife.org/

Ruby on Rails provides an excellent framework for working with data- driven websites. I would say "Of course, it can be done". It certainly would be a big task, but it would be possible. You would model your data with ActiveRecord and Migrations. Consider using Ferret or something for fast indexed searching. Build your user- interface. Sprinkle it with AJAX through Rails AJAX helpers. Optimize, optimize, optimize. I think you would need to lay out the application with good partial rendering so as to take advantage of caching as much as possible. Deploy with a scalable architecture with Mongrel. You can model the concept, it's just a auction website. Just like any large-scale application, it would take some work. I have to say it, I love rails. It gives you a lot of great tools to work out a site, without over-controlling your design. You are pretty free to mold the framework to your app.

Lee Hericks

Yes. You could certainly build an ebay clone using Ruby On Rails. You could also build an ebay clone using Java, .Net, PHP, Perl, Lisp, C, C++, etc.

What would vary between these solutions would be the amount of effort to build it, the maintainability and the amount of hardware necessary to serve it.

b

DigitalRealm wrote:

I was thinking the only part that may be difficult to build/manage would be the user account side of things. Things like the "My eBay" where you can keep track of past purchases, watched items, etc. That seems to be the hardest part to me, however, being a new Rails user, I may just not be familiar enough with it to see how to implement that easily.

Is there a lot of functionality built into RoR for managing user accounts and user info? User info, storing payment info, keeping track of what people have viewed, purchased, or wishlisted? This where I was thinking it may get a little tough.

Cory

Is there a lot of functionality built into RoR for managing user accounts and user info? User info, storing payment info, keeping track

of what people have viewed, purchased, or wishlisted? This where I was thinking it may get a little tough.

Rails is not a toolkit that will do things for you, it’s a framework built on top of a programming language. Those things you mentioned are nothing more than records in a database. As was said before, any programming language can do that just fine. The trick will be laying out the data in a way that makes sense.

That said, most large scale operations do a lot of their own custom coding for databases, web servers, etc… because they need that specialized performance. Apache + mongrel probably won’t cut it for an operation as big as eBay, but it would be neat to see someone try.

I see what you are saying Brian, and I am starting to really understand the whole Rails framework. In fact, I am glad that it is not just a toolkit that does those things, it makes learning it and building it that much more rewarding.

My original idea is to build an "eBay type" site, that incorporates some of the same features that eBay currently uses. Obviously, not nearly on that same scale, as what I have planned is intended to stay local to my area. I am certainly going to build it and see how it goes. The challenge, along with learning a totally new language, has interested me enough to go for it.

Cory

Awesome! Go for it. It’s always easier to learn a new language if you have a mission and a familiar model to follow :slight_smile:

http://rowansimpson.com/2007/04/09/ebay-architecture/

Go there and read the linked PDF presentation.

The question of whether eBay can be built with Rails is borderline silly. Amazon, eBay, etc... all massive websites like that are huge custom stacks of heterogeneous technologies.

Obie,

The idea here is not so much the huge scale of eBay, but whether the same eBay functionality could be accomplished with Rails. And I do believe in fact that it can be accomplished.

I understand that the huge powerhouse sites are running on a myriad of custom technologies, practices, and standards. Obviously, if I wanted this site to serve millions of users everyday, it would most likely not hold up based solely on Rails. But that was not the point on this, the idea here about the functionality, not scalability.

Now this discussion became officially pointless.

The answer maybe yes or no, depending on what you mean.

If you mean, "does Rails provide all the functionality of eBay, out of the box" then the answer is obviously no, and it would be the same for any web app framework you care to choose.

If you mean, "can one implement all the functionaliy of eBay, starting from what Rails provides" then the answer is obviously yes and it would be the same for all Turing-complete languages capable of handling standard I/O ever since the common gateway protocol was invented in the last century.

Cheers,

Luciano