We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 44922
    • 131 Posts
    We're looking at developing a software system for a client in Modx - because we know Modx better than anything else and we no longer have 'from the ground up' coding ability. One thing I noticed in the requirement is the client's desire to scale the development in future to half a million users. That's a lot of users. I wondered if you experienced guys feel Modx can cope with that volume of users and where / how to modify to cope? User scenarios are user registration, auto emails, account status for a couple of user-specific attributes..... In a way, an enhanced login/register extra for a gazillion people.
      • 28042 ☆ A M B ☆
      • 24,524 Posts
      That shouldn't be a problem at all. Just about everything that lists users for any reason, front-end or Manager, uses paging. Any front-end listing can use AJAX paging and filtering as desired.

      Instead of using the JSON-based user extended fields, you'd probably be better off using an extended user type, as discussed here http://bobsguides.com/blog.html/2014/05/27/why-extend-moduser/
        Studying MODX in the desert - http://sottwell.com
        Tips and Tricks from the MODX Forums and Slack Channels - http://modxcookbook.com
        Join the Slack Community - http://modx.org
        • 13428 ☆ A M B ☆
        • 1,031 Posts
        An installation with that large user base maybe has to be handled with load balancing. That is possible with MODX too: http://modx360.com/blog/2013/11/02/load-balancing-modx/

        Read the presentation and get in contact with Garry Nutting if you have further questions then.
          • 28042 ☆ A M B ☆
          • 24,524 Posts
          Yes, there is more involved than just accessing X number of resources or managing X number of users. That big of a userbase probably will mean a very busy site.

          But that's a matter of hardware, configuration and of course MODX processing optimization and even caching.

          http://modxcookbook.com/installation/memcached/
            Studying MODX in the desert - http://sottwell.com
            Tips and Tricks from the MODX Forums and Slack Channels - http://modxcookbook.com
            Join the Slack Community - http://modx.org
            • 11055 ☆ A M B ☆
            • 3,112 Posts
            Sounds like a social networking website.

            Rule of thumb:

            1. Don't clear cache too much. MODX clears cache entirely when manager user saves something on manager. Alt: use getCache
            2. Use 3rd-party email provider, eg: Mailgun. You can use its SMTP credentials, and set them in System Settings. Its API is straight forward.
            3. Most of the time, your problem will be server problem. I guess MODX problem will be disk i/o issue (cache writing), SQL connection, external integration with other services
            4. Order a big RAM. I mean BIG one. 2 x 8 GB maybe?
              Rico
              Genius is one percent inspiration and ninety-nine percent perspiration. Thomas A. Edison
              MODx is great, but knowing how to use it well makes it perfect!

              www.virtudraft.com

              Security, security, security! | Indonesian MODx Forum | MODx Revo's cheatsheets | MODx Evo's cheatsheets

              Author of Easy 2 Gallery 1.4.x, PHPTidy, spieFeed, FileDownload R, Upload To Users CMP, Inherit Template TV, LexRating, ExerPlan, Lingua, virtuNewsletter, Grid Class Key, SmartTag, prevNext

              Maintainter/contributor of Babel

              Because it's hard to follow all topics on the forum, PING ME ON TWITTER @_goldsky if you need my help.
              • 3749
              • 24,544 Posts
              MODX powers some gigantic sites, so it's definitely doable.

              Here are a few suggestions:

              Do not use the User Profile's extended fields for *anything*.
              Do not use TVs to store data.
              Do not use conditional output modifiers.

              Look at the Notify, Subscribe, and ClassExtender extras.

              Definitely use a 3d-party mail service. Good luck picking one. wink It's a nightmare.

              I've used MailChimp/Mandrill, but it's V3.0 API is not very well documented at this point and V2.0 is deprecated. Mandrill has been free, but will soon cost about $30/month minimum.

              One issue that's difficult to predict is deliverability. Some services will report emails as delivered that weren't and some are more likely than others to have the email end up in the spam folder.

              Several services are mentioned here, and here. SendGrid is the Cadillac of ESPs, Amazon SES is one of the least expensive for large volumes of mail.

              You might also want to consider hiring MODX, LLC to help. They build monster MODX sites regularly.


                Did I help you? Buy me a beer
                Get my Book: MODX:The Official Guide
                MODX info for everyone: http://bobsguides.com/modx.html
                My MODX Extras
                Bob's Guides is now hosted at A2 MODX Hosting
                • 44922
                • 131 Posts
                Thank you to all for the pointers here - extremely useful. Goldsky, you're right in that it is social 'related'. I hear you on the server specs. Would you re-hash the register snippet to use and extended ModUser a la Bob or just code from scratch?
                  • 11055 ☆ A M B ☆
                  • 3,112 Posts
                  I've built some of "social" sites, so this is pretty much familiar for me.
                  For these type of sites, I usually split the database.
                  It's not recommended by MODX's core team, because xPDO doesn't do that.
                  I found the trick of joining query of foreign database and MODX.
                  By finding this, I could split the user's information, including their usergroups to all database.
                  It was meant to centralized which database was subject of database replication.
                  That said, MODX was only used for registering/login and blogging.
                  At any time the client wanted to switch CMS/Framework/Platform (for any reason), the developer would just need to convert blog contents, without worrying to deal with user's database.
                  Well, of course it's the scenario of keeping the database in MySQL.

                  On sidenote, beyond the MODX topic, you might want to read more about graph database.
                  It's built specifically to deal with horizontal relation data.
                  For this database, I don't have experience, yet smiley, so I can only tell you that.

                  For hardware, I recommend you to try one of the Cloud services, because handling the anger of half a million users will be pain in the ass if your site is down even just in 10 seconds. [ed. note: goldsky last edited this post 10 years, 6 months ago.]
                    Rico
                    Genius is one percent inspiration and ninety-nine percent perspiration. Thomas A. Edison
                    MODx is great, but knowing how to use it well makes it perfect!

                    www.virtudraft.com

                    Security, security, security! | Indonesian MODx Forum | MODx Revo's cheatsheets | MODx Evo's cheatsheets

                    Author of Easy 2 Gallery 1.4.x, PHPTidy, spieFeed, FileDownload R, Upload To Users CMP, Inherit Template TV, LexRating, ExerPlan, Lingua, virtuNewsletter, Grid Class Key, SmartTag, prevNext

                    Maintainter/contributor of Babel

                    Because it's hard to follow all topics on the forum, PING ME ON TWITTER @_goldsky if you need my help.
                    • 28042 ☆ A M B ☆
                    • 24,524 Posts
                    As far as "splitting" the database, it's very easy to create and manage custom tables with MIGXdb. Also, BobRay's ClassExtender handles integrating custom tables for you.

                    http://bobsguides.com/classextender-class.html
                    http://bobsguides.com/blog.html/2014/05/27/why-extend-moduser/
                      Studying MODX in the desert - http://sottwell.com
                      Tips and Tricks from the MODX Forums and Slack Channels - http://modxcookbook.com
                      Join the Slack Community - http://modx.org