Just question how good is Propel's support for database sharding? I'm considering creating my application in PHP, using MySQL because the database server and Propel because the ORM.

I determine it might be good to help keep the architecture scalable immediately, just just in case my application will take off.

What's your take?

I believe this is a very bad idea. Presuming you need to shard your computer data isn't a good assumption. You do not know, ahead of time, how you are likely to wish to scale. Sharding is an extremely complicated business and must be prevented if whatsoever possible. It is really an obscene situation of premature optimisation.

To be sure with MarkR it's too soon to become worrying about sharding, however i disagree that it ought to be prevented if whatsoever possible. I'd say opt for the ORM that appears to suit your style and language choice -- and Propel is most likely the correct one inside your situation. Even when the application will take off inside a large way, sharding most likely will not be necessary -- it is simple to accomplish 25 million records having a MySQL-based DBMS plus some decent caching techniques, so just concentrate on making your queries fast and design for simple memcache-integration, and you will be a contented camper even if your application will take off.

Have fun with it!

Propel supports sharding as they are through connections. check a good example here: