Tenant - A tenant is an organisation within CartonCloud. For example: "Freight Company A" use CartonCloud, they're considered a tenant
CartonCloud is a PHP application based upon the CakePHP 2 framework. We also use a variety of 3rd party paid-for, and open-source libraries.
CartonCloud uses Sphinx as its search engine.
CartonCloud uses MYSQL.
Each tenant has their own database, with a shared database for user authentication (shared by all tenants). This enables easy transfer of tenants between different database servers in the event that they're extremely heavy users (may require their own database), or would like to be on their own database server for security reasons. The Users database is shared because users may have access to multiple tenants, for example a company may send freight on 3 different freight companies all using CartonCloud.
CartonCloud is hosted on Amazon Web Services (AWS) within the southeast-2 region.
Multiple servers are always running across multiple "availability zones", meaning that if one area goes down, the system will continue to operate. All critical processes are split this way, so they're replicated across multiple availability zones to prevent outages.
Redundancy Provisions & Backups
All files uploaded to the system, such as Manifests, Signatures and Photos captured from the Mobile App, Invoices scanned in, are copied to a secondary file system every hour.
The entire file system is then saved as a 'snapshot' each day, and the last 7 days snapshots are stored. This enables us to recover from both immediate data-loss (hard drive corruption etc), and accidental deletion (ie: someone deletes a whole bunch of signatures, they can be restored from a snapshot if reported within 7 days).
All databases are backed up to a snapshot each day, and the last 35 days of snapshots are stored.
All communication with the CartonCloud system is SSL encrypted to prevent eavesdropping.
In the event that an account is shut down (client leaves CartonCloud), a final database and filesystem snapshot is taken and stored permanently within Amazon S3 Glacier Storage. This allows for the account to be restored at a later time.