1. A method for providing electronic communication data mining, the method comprising: collecting a plurality of communications associated with a user, wherein the plurality of communications comprise a plurality of data types comprising at least two of the following: an e-mail, an instant messages (IM), a short message service (SMS) message, a voicemail, a search query, a public posting, a document authored by the user, a directory of a plurality of users, a contact list, a calendar appointment, and a task entry; delivering the plurality of collected communications to at least one data analyzer module, the at least one data analyzer module comprising a plurality of weighted workflows, each of the plurality of weighted workflows comprising a different level of processing for generating insights and updating insights based on at least one of batch data, collected data and generated data, the plurality of weighted workflows comprising at least a medium weight workflow for updating existing insights based on the at least one of the batch data and a lightweight workflow for at least one of generating and updating the insights in real-time, the plurality of workflows being executed on a plurality of machines in a high availability cluster, the plurality of machines including at least one active node utilized by the lightweight workflow and one passive node utilized by the medium weight workflow, the medium weight workflow utilizing a resource intensive batch analysis that is executed using spare cycles of the passive node; deriving, utilizing one or more of the plurality of weighted workflows, an insight about the user from the collected plurality of communications, the insight about the user being based on at least one of the following: a processor type used to derive the insight and a communication type for at least one of the collected communications from which the insight is derived; and modifying at least one application functionality based on the derived insight.