1. A computer system comprising: a second computing device; and a first computing device comprising: a first memory device; a resource allocation module; a first shared computing resource; and a first processing device coupled to the first memory device and configured to perform, based on instructions stored in the first memory device: in response to an occurrence of an external event, managing a first load level and a second load level of the first shared computing resource by a first software application and a second software application, respectively; mapping a plurality of policies to a plurality of previous event patterns, wherein the plurality of policies comprises a first policy and a second policy; determining a first load level and a second load level of the first shared computing resource by the first software application and the second software application, respectively, that are executing on the first computing device; when the first load level exceeds a first predetermined threshold, obtaining a first event data stream for the first software application; selecting a first filter from a plurality of filters for the first software application; transforming the first event data stream with the first filter to obtain a first detected event pattern; detecting whether the first detected event pattern comprises an ordered sequence of events; and when the first detected event pattern matches a first previous event pattern of the plurality of previous event patterns, instructing the resource allocation module to apply the first policy to the first software application for the first shared computing resource, and wherein detecting whether the first detected event pattern comprises the ordered sequence of events before instructing the resource allocation to apply the first policy; and when the second load level exceeds a second predetermined threshold, obtaining a second event data stream for the second software application; selecting a second filter from a plurality of filters for the second software application, wherein the second filter is different from the first filter; transforming the second event data stream to obtain a second detected event pattern; and when the second detected event pattern matches a second previous event pattern of the plurality of previous event patterns, instructing the resource allocation module to apply the second policy to the second software application for the first shared computing resource; wherein when the first detected event pattern does not match any of the plurality of previous event patterns, sending an event request to the second computing device, wherein the event request includes event information indicative of the first detected event pattern; and receiving an event response from the second computing device, wherein the event response is indicative of whether the first detected event pattern matches any event pattern that has occurred in the computer system.