DISTRIBUTING MULTI-SOURCE PUSH NOTIFICATIONS TO MULTIPLE TARGETS
Delivering events to consumers. A method includes accessing proprietary data. The method further includes normalizing the proprietary data to create a normalized event. A plurality of end consumers is determined, that based on a subscription should receive the event. Data from the normalized event is formatted into a plurality of different formats appropriate for all of the determined end consumers. Data from the normalized event is delivered to each of the plurality of end consumers in a format appropriate to the end consumers.
1 . A method of delivering events to consumers, the method comprising:
accessing proprietary data;
normalizing the proprietary data to create a normalized event;
determining a plurality of end consumers, that based on a subscription should receive the event;
formatting data from the normalized event into a plurality of different formats appropriate for all of the determined end consumers; and
delivering the data from the normalized event to each of the plurality of end consumers in a format appropriate to the end consumers.
2 . The method of claim 1 , wherein accessing proprietary data comprises accessing data from a plurality of sources.
3 . The method of claim 1 , wherein delivering the data from the normalized event to each of the plurality of end consumers in a format appropriate to the end consumers comprises first fanning out the data from the event in the normalized format.
4 . The method of claim 1 , wherein delivering the data from the normalized event to each of the plurality of end consumers in a format appropriate to the end consumers comprises packaging the event into a plurality of bundles, wherein each of the bundles comprises the event in the normalized format and a routing slip, the routing slip identifying a plurality end consumers, including identifying formats for the end consumers identified in the routing slip.
5 . The method of claim 4 , wherein packaging the event into a plurality of bundles comprises consulting a database to determine which end consumers are included in the routing slip by referencing end consumer preferences in the database.
6 . The method of claim 1 , wherein normalizing the proprietary data to create a normalized event comprises representing the data as key value pairs, the pairs accompanied by a single opaque, binary chunk of data not further interpreted by an event normalization system.
7 . The method of claim 1 , wherein formatting data from the normalized event into a plurality of different formats appropriate for all of the determined end consumers comprises mapping one or more properties from the normalized event into a format by mapping message properties with the same name.
8 . A computer readable storage medium comprising computer executable instructions that when executed by one or more processors cause one or more processors to perform the following:
access proprietary data;
normalize the proprietary data to create a normalized event;
determine a plurality of end consumers, that based on a subscription should receive the event;
format data from the normalized event into a plurality of different formats appropriate for all of the determined end consumers; and
deliver the data from the normalized event to each of the plurality of end consumers in a format appropriate to the end consumers.
9 . The computer readable medium of claim 8 , wherein accessing proprietary data comprises accessing data from a plurality of sources.
10 . The computer readable medium of claim 8 , wherein delivering the data from the normalized event to each of the plurality of end consumers in a format appropriate to the end consumers comprises first fanning out the data from the event in the normalized format.
11 . The computer readable medium of claim 8 , wherein delivering the data from the normalized event to each of the plurality of end consumers in a format appropriate to the end consumers comprises packaging the event into a plurality of bundles, wherein each of the bundles comprises the event in the normalized format and a routing slip, the routing slip identifying a plurality end consumers, including identifying formats for the end consumers identified in the routing slip.
12 . The computer readable medium of claim 11 , wherein packaging the event into a plurality of bundles comprises consulting a database to determine which end consumers are included in the routing slip by referencing end consumer preferences in the database.
13 . The computer readable medium of claim 8 , wherein normalizing the proprietary data to create a normalized event comprises representing the data as key value pairs, the pairs accompanied by a single opaque, binary chunk of data not further interpreted by an event normalization system.
14 . The computer readable medium of claim 8 , wherein formatting data from the normalized event into a plurality of different formats appropriate for all of the determined end consumers comprises mapping one or more properties from the normalized event into a format by mapping message properties with the same name.
15 . A computing system for delivering events to consumers, the computing system comprising:
one or more modules configured to access proprietary data;
one or more modules configured to normalize the proprietary data to create a normalized event;
one or more modules configured to determine a plurality of end consumers, that based on a subscription should receive the event;
one or more modules configured to format data from the normalized event into a plurality of different formats appropriate for all of the determined end consumers; and
one or more modules configured to deliver the data from the normalized event to each of the plurality of end consumers in a format appropriate to the end consumers by fanning out the data from the normalized event to a plurality of copies of the data from the normalized event to a plurality of distribution partitions wherein each of the distribution partitions delivers the data from the normalized event to a portion of the plurality of end consumers.
16 . The computing system of claim 15 , wherein accessing proprietary data comprises accessing data from a plurality of sources.
17 . The computing system of claim 15 , wherein delivering the data from the normalized event to each of the plurality of end consumers in a format appropriate to the end consumers comprises packaging the event into a plurality of bundles, wherein each of the bundles comprises the event in the normalized format and a routing slip, the routing slip identifying a plurality end consumers, including identifying formats for the end consumers identified in the routing slip.
18 . The computing system of claim 17 , wherein packaging the event into a plurality of bundles comprises consulting a database to determine which end consumers are included in the routing slip by referencing end consumer preferences in the database.
19 . The computing system of claim 15 , wherein normalizing the proprietary data to create a normalized event comprises representing the data as key value pairs, the pairs accompanied by a single opaque, binary chunk of data not further interpreted by an event normalization system.
20 . The computing system of claim 15 , wherein formatting data from the normalized event into a plurality of different formats appropriate for all of the determined end consumers comprises mapping one or more properties from the normalized event into a format by mapping message properties with the same name.