Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I would like to get some opinion about using WordPress as a data intense Web Application, let say like rememberthemilk where a user can have multiple post (task) just in a single day. Or maybe like twitter where one can even have multiple post (twitter) in an hour. Another point is that those web application is open for public, not on a limited group of users.

If downloaded and tried P2 theme, as the closest benchmark, but I am not sure how it performs with a large number of users.

And the question is;

  • is it advisable to create those kind of app in WordPress?
  • What are the drawbacks if it is build using WordPress?

Update :

Currently I'm experimenting a custom WordPress theme that can be used a personal finance log. This was started only as wp-ajax experiment.

The theme has a front-end upload form, to log each transaction, and put them in the 'budget' (transaction category) and 'account' taxonomy to be queried. Every users have their own main budget and account custom-post-type with child budgets and accounts.

But along this experiment I started to wonder whether a single WordPress installation is suitable as a private-blog-that-anyone-can-register-to like this. Is it possible to handle large number of users ? And how far can I push a WordPress as an app framework?

share|improve this question
    
Please rewrite your question to provide an actual usage case, "intense web app" is to broad a question. –  Wyck Aug 10 '12 at 3:31
    
Done that. Hope this clear things out. –  ifdion Aug 10 '12 at 4:12
    
Thanks I will add to my answer. –  Wyck Aug 10 '12 at 5:25
add comment

3 Answers

up vote 3 down vote accepted

Its more than possible to create a data-intensive, even real-time web application, using the WordPress platform as a base framework.

The WordPress database architecture is as such that is suits websites that are either blogs or content management systems of some kind.

What is defined as being a CMS-like-site can be wide and varied in opinion, but neither of the aforementioned are really related to data intense web applications such as you mention, Remember The Milk or Twiiter.

Because of this, its not going to be without a deal of effort on your part to understand your options and equally know how to execute them in the form of a strategy that compliments your application now and in the future by being able to scale upward with any growth you experience.

With that in mind, the existing database table structure might not be suitable for what you want to achieve outright, however one of the great abilities we have when working with PHP and in this case WordPress, is that we can define database-tables that have an alternative structure/schema that more closely fits our needs.

In fact, not only can you define your own tables within the default WordPress database of your installation, but you can also go well beyond that and..

  • access external, secondary, third or fourth databases
  • access NoSQL alternatives such as MongoDB, CouchDB or key/val stores like Redis

I must mention though that any data contained with external databases especially of different varieties (NoSQL, Key/Val) won't be accessible through your usual WordPress API functions directly but I'd assume if you're going to such lengths you'd know how to query your data sets in-conjunction with using template/theme functions for presentation.

Another important aspect to consider is,

  • web hosting (Cloud? Dedicated? PaaS?)

Your hosting platform will play an equally important role in performance so making the right investment to back your project is essential.

The biggest drawback to all of this is rather simple and that's if any of the above sounds confusing and or complex then building a web application of high quality might not be the best choice, with WordPress.

Instead, you might be better off using a PHP framework and building your application from scratch, where you can have fine grained control over the intricacies of each layer and component. You will be faced with similar challenges however, in that database choice, architecture/structure and so on will play an important role in the performance of your application.

share|improve this answer
    
I've added some detail. What do you think about it? Is it wise to do that in WordPress? Thanks in advance –  ifdion Aug 10 '12 at 10:07
    
@ifdion A link shared in the WPSE chat room which relates to the topic of performance optimization for WordPress might be of interest to you. Its a new site as of yesterday (14 AUG 2012) and contains an introduction post, but so far not much more. However I suggest reading the first article and answering Jeff's call for 'topic suggestions' by providing the subject used for this WPSE question and a reference link to this thread. There's also some supplemental links in his sidebar to start reading in the interim. Hope this also helps you. –  userabuser Aug 14 '12 at 18:28
    
@ifdion If you intend to use the default table-structure, custom post types, custom taxonomies, etc - for a data intensive application, I would recommend against it unless you have a clear understanding of the topics and outbound links provided in this Codex article on optimization. Else you run the risk of boxing your application into a performance-impaired corner should your rate-of-growth outstrip your rate-of-planning-for-growth otherwise you run the risk of some very unhappy customers. –  userabuser Aug 14 '12 at 18:35
add comment

It's not really a matter of performance, it's a matter of functionality performance. You need to better define your exact needs. Twitter doesn't take multiple post per hour, it handles over 3k tweets per second on average with peaks going to 30k per second, a default WordPress isn't going to do that.

At the end of the day if you end up having to extend your code away from WordPress, as userabuser suggests, you have to question why use WordPress in the first place, there are many frameworks that have database abstractions, http API's, routing, etc.

After your edit


Since you do seem to be using built in WordPress functionality I don't see any particular problem. With that being said once you start to scale into the tens of thousands of CPT's categories and taxonomies you might start to see some slow areas crop up that need to be optimized, but this depends on your query and just what it is doing.

In your case it would be really beneficial to create a dev server script that mimics real usage, creates 10k+ CPT/ with data and the appropriate tax/cat. Then throw some tests at it via curl or some bench-marking tools and see what happens with various amount of ram and cache settings. Unless your doing something weird/unique I don't see any issues, especially if your on a solid server/cluster.

share|improve this answer
    
Thank you @Wyck . Does this means WordPress is not suitable for 10k + records on the wp_posts table? Or is it doable in a high end server? –  ifdion Aug 10 '12 at 6:43
    
It's certainly suitable for 100's k+ entries, in the millions, I'm not sure, but you can always extend/shard/CDN it as per userabusers answer. –  Wyck Aug 10 '12 at 16:44
add comment

@ifdion, Matt announced that Wordpress would soon be offering features/functions that would qualify it as an app engine. I think it's scalable with the right hosting provider; You can check out wpengine, page.ly or zippykid (all wordpress specific hosts)

Anyway, I am building something similar on Wordpress. Only problem is, I am more of a design than a through and through developer. Can you share how you managed to create the budget manager page and got it saved for each user?

I would be glad if you could teach me how to implement something similar on Wordpress. I want a feature where people can save and track their expenses with their budgets.

share|improve this answer
    
Thats great news. I'll check ma.tt. Actually its quite easy to manage user data using the user meta. Post your case here and I'll see if i can help –  ifdion Aug 18 '12 at 23:12
    
Didn't found the news on ma.tt. Where did you know the news @Kwame Boame? I really want to know this great news. –  ifdion Aug 19 '12 at 8:56
    
@ifdion: read the takeaways from Wordcamp San Francisco here: tonicarr.com/blog/wordcamp-san-francisco-2012 Look for 11.39 You'll see it there :). I also read somewhere that it will be available on Wordpress TV in a couple of weeks. About my little financial app, i am now converting to WP. Will keep in touch and let you know when I get stuck. Let me know if you need any type of help too with your app; ideas, coding help, design, etc. maybe I'll be able to help in some way. –  Kwame Boame Aug 20 '12 at 13:05
    
@ifdion here you go: wordpress.tv/2012/08/06/matt-mullenweg-state-of-the-word-2012 :) –  Kwame Boame Aug 22 '12 at 15:32
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.