Search code examples
systemestimation

Given this expectations, what language or system would you choose to implement the solution?


Here are the estimates the system should handle:

  • 3000+ end users
  • 150+ offices around the world
  • 1500+ concurrent users at peak times
  • 10.000+ daily updates
  • 4-5 commits per second
  • 50-70 transactions per second (reads/searches/updates)

This will be internal only business application, dedicated to help shipping company with worldwide shipment management.

What would be your technology choice, why that choice and roughly how long would it take to implement it? Thanks.

Note: I'm not recruiting. :-)


Solution

  • So, you asked how I would tackle such a project. In the Smalltalk world, people seem to agree that Gemstone makes things scale somewhat magically.

    So, what I'd really do is this: I'd start developing in a simple Squeak image, using SandstoneDB. Then, this moment would come where a single image begins being too slow.

    GemStone then takes care of copying your public objects (those visible from a certain root) back and forth between all instances. You get sessions and enhanced query functionalities, plus quite a fast VM.

    It shares data with C, Java and Ruby.

    In fact, they have their own VM for ruby, which is also worth a look.