A method for providing real-time streaming data, carried out by a plurality of edge servers of a network, wherein the plurality of edge servers are in different geographic locations and wherein each edge server of the plurality of edge servers communicates with one or more client devices that are positioned in the same geographic location as the edge server, comprising: receiving , at each edge server of the plurality of edge servers, respective real-time streaming data from at least a respective first client device, wherein the real-time streaming data is geo-temporal data of the first client device; processing , by each edge server of the plurality of edge servers, within a first time duration that is in real-time, the received real-time streaming data to produce respective first edge processed data; receiving , by each edge server of the plurality of edge servers, a respective request for real-time streaming data from at least a respective second client device; providing , by each edge server of the plurality of edge servers, in real-time, the first edge processed data from the respective edge server to the respective requesting second client device; processing by each edge server of the plurality of edge servers, within a second time duration that is in non-real-time, the received real-time streaming data to produce second edge processed data that is different from the first edge processed data, the second time duration being longer than the first time duration, and forwarding , by each edge server of the plurality of edge servers, the respective second edge processed data to a central server for processing, the respective second edge processed data having been produced by processing the respective real-time streaming data by the edge server, wherein each edge server of the plurality of edge servers forwards the respective second edge processed data to the same central server; wherein the method is performed using one or more processors of the plurality of edge servers. receiving , at each edge server of the plurality of edge servers, respective real-time streaming data from at least a respective first client device, wherein the real-time streaming data is geo-temporal data of the first client device; processing , by each edge server of the plurality of edge servers, within a first time duration that is in real-time, the received real-time streaming data to produce respective first edge processed data; receiving , by each edge server of the plurality of edge servers, a respective request for real-time streaming data from at least a respective second client device; providing , by each edge server of the plurality of edge servers, in real-time, the first edge processed data from the respective edge server to the respective requesting second client device; processing by each edge server of the plurality of edge servers, within a second time duration that is in non-real-time, the received real-time streaming data to produce second edge processed data that is different from the first edge processed data, the second time duration being longer than the first time duration, and forwarding , by each edge server of the plurality of edge servers, the respective second edge processed data to a central server for processing, the respective second edge processed data having been produced by processing the respective real-time streaming data by the edge server, wherein each edge server of the plurality of edge servers forwards the respective second edge processed data to the same central server; wherein the method is performed using one or more processors of the plurality of edge servers. <EOS>