Patch 2.88

Lot’s of Patch notes! New Technologies! Make go more faster!

  • NodeJS
    • Many functions in TLD were recreated in NodeJS. Node is a state of the art asynchronous back end and front end system running on the server. It currently is running timed processes, websockets and other minor routes. We are moving toward more heavily relying on Node in the future due to it’s speed and memory efficiency.  Many of TLD’s core features, queries and more are being recreated in Node.
  • Mail
    • Mail is now working as intended and is ready for affiliate use.
  • Mailer Campaigns
    • Mailer campaigns are now active. Setting up a mail query will run every hour and look for leads or policies within an hour and X days based on campaign settings.
  • Mailer Queue
    • The mailer queue was rewritten to be lighter on the database. Efficiency increased by 1000%. Mail that is queued will not go out until after a minimum of one minute as the queue is checked every minute. We also have to respect Amazon SES limits for bulk mail sending which is currently about 300 mails a minute. Regular mails such as CSR E-mails, Campaigns and even Vendor Post instructions insert into the queue as opposed to mailing direct.
  • Redis Sessions
    • Redis is a very fast state of the art open source keystore memory database system.  It is now running on the server.  It is excellent for if we ever have to shard the server (Use multiple servers to host the site).
    • Sessions are what authenticate a user and store data. We switched from mySQL Database based sessions to redis sessons to free up the database from having to deal with them.  This increases performance from any ajax based checking functions. However most of these were removed with the websocket optimization.
  • Recordings
    • Websockets! Recordings is our first implementation of Websockets. Now whenever there is a new recording, instead of checking constantly to the server every second, the server emits events to each client that there is a new recording and checks to see if it matches the numbers on the lead. This is 10000% more efficient than the previous method. Active Recordings are now checked on lead load, when the phone number field changes, and when a recording starts on the server. We are working on a method to automatically check for archive recordings and insert into the page when a new one is found.
    • If the socket server somehow cant be accessed or crashes the old AJAX method of checking recordings is still active as a fallback.
      • There was a bug in the AJAX method that whenever you hit save, it would start double to triple to quadruple checking for the recordings. This was fixed since it is still fallback method.
  • Query Logger
    • Installed a query logger for development that we can enable and disable in the config. Had a side effect of being very strict with PDO’s  bindParam and bindValue. All queries were updated to bindValue to correct the issue. 
  • Removed Duplicate Queries
    • Found multiple instances of duplicate queries and pushed them into memory when being requested. In some instances this fix drastically increased performance.
  • Profile Report Index
    • Found 3 indexes not being used properly. Combined them into 1 index which allows the profile page to run much faster. Also makes insertions into lead database faster.
  • SSL Log
    • We had a few crashes due to the SSL Log being overfull and filling the hard drive. The reason this happened was due to the AJAX method in the dialer. Now that we are using websockets it should not occur.
  • Time Clock
    • Was removed as we find a better way to deal with users logging in and out from multiple machines and browsers. Expect more strictness.
  • Server Updates
    • The server was updated to PHP 5.5+ as well as all other software updated. This was much needed. We will be scheduling weekly updates from now on.

What’s Next?

  • Clock
    • An accurate clock method
    • Auto log out based on inactivity. (Javascript)
    • Auto log out if you login elsewhere.
      • More annoying but more secure, more accurate clock data.
  • Carrier API Integration
    • SMIG
      • Sync Policy Notes and Statuses
    • HII
      • Sync Policy Statuses
      • Sync Recordings via FTP
  • Genesis
    • Allowing Multiple Posts per Account (Multi Config)
  • Mailer
    • Increase Mailing Limit to allow Affiliates
  • Reports
    • Moar Reports!
  • Post System
    • Ability to Send Data to multiple third party Posts per Vendor.