<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: GeoEvent and High Availibility in High Availability and Disaster Recovery Questions</title>
    <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766983#M42</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Nick -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The reference you highlight, that stream services only run on a single machine, is intended to convey that the JVM used to run GeoEvent Server is the container used to run stream services (unlike traditional map/feature services which have multiple instances and are run by SOC components managed by ArcGIS Server). So the server machine used to publish a stream service is the machine whose GeoEvent Server JVM is running the stream service. However, as I mention above, copies of the Esri Feature JSON records a stream service broadcasts are forwarded to other GeoEvent Server instances in an ArcGIS Server site. This&amp;nbsp;“fan out” allows web clients to subscribe to any machine’s stream service and get all of the feature records processed across&amp;nbsp;a&amp;nbsp;&lt;SPAN&gt;single site, multiple machine solution&lt;/SPAN&gt;&amp;nbsp;– regardless of which machine received an event record and which machine actually processed the event record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A&amp;nbsp;bug (BUG-000114373) with the "fan out" mechanism was addressed with the 10.6.1 release and ported back for release as part of&amp;nbsp;&lt;A href="https://support.esri.com/en/download/7688"&gt;ArcGIS GeoEvent Server 10.6 Patch 2&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The 10.7 release does not include any specific changes that, I think, should influence an system architect to choose a "silo" approach (where multiple independent instances of GeoEvent Server are run, each in their own ArcGIS Server site) vs. a "site" approach whose architecture deploys multiple GeoEvent Server instances configured as part of a single ArcGIS Server site.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If &lt;EM style="text-decoration: underline; "&gt;scalability&lt;/EM&gt; is your primary objective, I would probably recommend the "silo" approach. The solution&amp;nbsp;you architect&amp;nbsp;would need to&amp;nbsp;include an&amp;nbsp;external Apache Kafka (or similar message broker) to handle event record distribution across the multiple independent ArcGIS Server / GeoEvent Server instances. Adopting and maintaining your own Kafka solution introduces its own technical burden, but I think we are finding that, for scalability, this approach lends itself to a system that is easier to maintain and administer overall.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If &lt;EM style="text-decoration: underline; "&gt;reliability&lt;/EM&gt; and fault-tolerance is your primary objective (I really dislike using the term high-availability) then a "site" approach is an option. The solution you architect could deploy multiple ArcGIS Server / GeoEvent Server instances in a single site and rely on the Apache Kafka and Zookeeper built-in to the GeoEvent Gateway to mitigate individual machine failures. But a reliability objective can also be addressed with an an active / active approach using multiple independent instances of GeoEvent Server to build redundancy into a distributed solution for fault-tolerance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are advantages to going with the single site, multiple machines approach for resiliency. Specifically when your solution relies on GeoEvent Server polling external web servers / web services for data (which you mentioned), we have observed that the GeoEvent Gateway reliably mitigates the failure of a single node -- which had been the node polling for input -- by allowing another node to "adopt" the input and begin handling the data polling activity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are also significant system complexity and administration disadvantages to the "site"&amp;nbsp;&lt;SPAN&gt;approach,&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;which is why I recommend folks who are&amp;nbsp;considering multiple machine, distributed architectures&amp;nbsp;for real-time solutions work with their Esri Technical Advisor or contract with Esri Professional Services for consultation. Only after discussing specific objectives and weighing both the pros and cons can a recommendation be made as to which approach your solution ought to take.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; "&gt;- RJ&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 15 Apr 2019 18:05:03 GMT</pubDate>
    <dc:creator>RJSunderman</dc:creator>
    <dc:date>2019-04-15T18:05:03Z</dc:date>
    <item>
      <title>GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766965#M24</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This would be our Portal and ArcGIS Server high availability deployment.&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="364336" alt="" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/364336_HA_Geo.PNG" style="width: 620px; height: 399px;" /&gt;&lt;/P&gt;&lt;P&gt;We want to add a HA GeoEvent Server to this architecture. What would be the best solution based on the following limitations/recommendations?&lt;/P&gt;&lt;P&gt;1- Don't use multi-machine sites with GeoEvent&lt;/P&gt;&lt;P&gt;2- Don't install GeoEvent in your base GIS site&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If we create two independent GeoEvent site, we should sync them manually? Any better solution?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Jul 2017 22:47:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766965#M24</guid>
      <dc:creator>AzinSharaf</dc:creator>
      <dc:date>2017-07-25T22:47:05Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766966#M25</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Azin -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ArcGIS Server documentation includes reference architectures for deploying &lt;A href="http://server.arcgis.com/en/server/latest/get-started/windows/additional-server-deployment.htm"&gt;additional server roles&lt;/A&gt; (such as GeoEvent Server) to your &lt;A href="http://server.arcgis.com/en/server/latest/get-started/windows/what-is-arcgis-enterprise-.htm"&gt;ArcGIS Enterprise&lt;/A&gt;. &amp;nbsp;The terms I'm using here are consistent with the 10.5.x product release. There are reference architectures for &lt;A href="http://server.arcgis.com/en/server/latest/get-started/windows/base-arcgis-enterprise-deployment.htm#ESRI_SECTION1_DD626DDD97F340FE995F472010D1703C"&gt;high availability&lt;/A&gt; as well as for &lt;A href="http://server.arcgis.com/en/server/latest/get-started/windows/additional-server-deployment.htm#ESRI_SECTION1_F7B03953E7864058970E591E9D2CE859"&gt;GeoEvent Server&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Based on the icons you included in your system architecture illustration, I might assume you've seen these references - but I wanted to make sure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would point out that the reference architecture for GeoEvent Server which depicts a horizontal scale-out deliberately has white space between the machines:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="Additional server deployment - GeoEvent Server" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/364572_Capture.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;The white space is intended to depict your first stipulation -- that you do not 'Join Existing Site' when installing the GIS Server component of ArcGIS Server with the intention of later installing GeoEvent Server. Each of the three GeoEvent Server machines depicted above exist in their own site. They do not know anything about one another. This is to prevent leveraging a concept we refer to as "GeoEvent Clustering" which we introduced with the 10.3 release. Changes to address some issues were included with the 10.4 release. We eventually realized that the concept was fundamentally not working as we intended, and the advice now for releases 10.3 / 10.4 / 10.5 is to not have more than one GIS Server in a site when GeoEvent Server is installed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are working on developing a "Gateway" component for 10.6 with the intent that GeoEvent Server will again offer some resiliency and improved scalability. However, until then, your challenge is to figure out how to configure an external component to handle event distribution to two or more instances of GeoEvent Server which do not know anything about one another.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We prepared a &lt;A href="http://www.arcgis.com/home/item.html?id=89048b1cfdda4a71a9b2b334fe8c8cc9"&gt;GeoEvent Server Resiliency&lt;/A&gt;&amp;nbsp;tutorial which proposes using Kafka as an external message broker. Kafka provides load balancing to your real-time event message ingest by holding messages in a queue until consumers (individual GeoEvent Server instances) fetch them at the rate they are able to process them. My terminology may be off; I would recommend you refer to &lt;A href="https://kafka.apache.org/documentation/"&gt;Kafka's documentation&lt;/A&gt; as you read through the GeoEvent Server Resiliency tutorial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this information is helpful --&lt;/P&gt;&lt;P&gt;RJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Jul 2017 23:39:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766966#M25</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2017-07-26T23:39:08Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766967#M26</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks&amp;nbsp;&lt;A href="https://community.esri.com/people/rsunderman-esristaff"&gt;rsunderman-esristaff&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Jul 2017 22:27:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766967#M26</guid>
      <dc:creator>AzinSharaf</dc:creator>
      <dc:date>2017-07-28T22:27:29Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766968#M27</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi RJ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now that Arcgis for Server and Geoevent Server 10.6 is available, and the Gateway components&amp;nbsp; are in place, are we still encouraging other to go with a siloed Arcgis Geoevent Server instead of Arcgis Geoevent Server in a multimachine site?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Currently the documentation at 10.6 still mentions below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="color: #4c4c4c; background-color: #ffffff;"&gt;"It is NOT recommended to use multi-machine sites with&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="" style="color: #4c4c4c; background-color: #ffffff;"&gt;ArcGIS GeoEvent Server&lt;/SPAN&gt;&lt;SPAN style="color: #4c4c4c; background-color: #ffffff;"&gt;. Instead, you should configure multiple single-machine sites to dedicate&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="" style="color: #4c4c4c; background-color: #ffffff;"&gt;ArcGIS GeoEvent Server&lt;/SPAN&gt;&lt;SPAN style="color: #4c4c4c; background-color: #ffffff;"&gt;&amp;nbsp;machine resources to specific real-time data streams:"&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://enterprise.arcgis.com/en/get-started/latest/windows/additional-server-deployment.htm" title="http://enterprise.arcgis.com/en/get-started/latest/windows/additional-server-deployment.htm"&gt;Deployment patterns for ArcGIS Enterprise—ArcGIS Enterprise | ArcGIS Enterprise&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Jan 2018 23:56:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766968#M27</guid>
      <dc:creator>HarroldSompotan</dc:creator>
      <dc:date>2018-01-22T23:56:47Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766969#M28</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, with the introduction of the GeoEvent Gateway, system architects again have the option of deploying GeoEvent Server with multiple machines configured as part of a single ArcGIS Server site. The recommendation is still that your ArcGIS Enterprise be deployed separately allowing you the flexibility to scale the GIS Server component for map and feature services.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only real change to the diagram would be to de-emphasize the white space between GeoEvent Server instances:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/394588_SiteArchitecture.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Above, I'm illustrating that a GeoEvent Gateway, running on each ArcGIS Server machine, will coordinate through the ArcGIS Server site dedicated for real-time event processing to distribute events processing across the three machines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are still a number of questions to prove out here. What if a solution were being designed&amp;nbsp;which had&amp;nbsp;several, independent, inbound feeds whose velocity and/or event volume were each&amp;nbsp;nominal (no more than 1,000 or 2,000 events per second)? Such a use case wouldn't require an event distribution mechanism to leverage several machines. It might be better, in this case, to follow the 10.5 / 10.5.1 pattern of deploying independent instances of GeoEvent Server in separate sites, dedicating instances to handle one or two independent inbound data streams. The above single-site, multi-machine approach would be recommended only if you were deploying 10.6 and had a single inbound event stream whose&amp;nbsp;velocity / event volume were too much for a single server to handle.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A tutorial is being prepared for system architects and solution engineers which will identify recommended best practices for product deployment in a multi-machine configuration. The tutorial should be available by the Developer Summit, March 6 - 9 2018. Please reach out to &lt;A href="https://community.esri.com/migrated-users/2261"&gt;Greg Tieman&lt;/A&gt;‌ with questions on this. You can read more about the GeoEvent Gateway in the on-line help which was pushed out 9-January:&amp;nbsp; &lt;A href="http://enterprise.arcgis.com/en/geoevent/latest/get-started/whats-new-in-geoevent-server.htm"&gt;What's New at 10.6 GeoEvent Server&lt;/A&gt;&lt;/P&gt;&lt;P&gt;(Internationalization of the on-line help is still pending as I post this reply...)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- RJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Jan 2018 17:56:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766969#M28</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2018-01-23T17:56:31Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766970#M29</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, I'm a little thick sometimes.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just for my sanity:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;If your solution has multiple inbound feeds with an event velocity and/or volume that did not exceed 2,000 events per second, it is recommended to deploy multiple single-machine geoevent sites and dedicate each to a&amp;nbsp;one or two inbound feeds.&lt;/LI&gt;&lt;LI&gt;If your solution includes inbound feeds where the event velocity of volume does exceed 2,000 events per second, then an event distribution mechanism is likely needed and as such, a multi-machine geoevent site is recommended so that the geoevent-gateway can distribute events among the machines.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is that correct?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2018 21:57:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766970#M29</guid>
      <dc:creator>JohnDye2</dc:creator>
      <dc:date>2018-02-06T21:57:03Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766971#M30</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="https://community.esri.com/migrated-users/310856"&gt;John Dye&lt;/A&gt;‌ ... you have correctly interpreted the recommendation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You probably want to defer production engagements you think require GeoEvent multi-machine functionality and continue to deploy GeoEvent Server in separate ArcGIS Server sites. There's still work we need to complete to document best practices for you. Also, there are some issues we are investigating which tend to manifest with deliberate fault injection (like abruptly powering down a machine or severing its network connection). There will likely be a patch for 10.6 for multi-machine deployments ... stay tuned.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- RJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2018 01:45:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766971#M30</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2018-02-07T01:45:05Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766972#M31</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks RJ. I suppose the one question your responses then raises is whether or not there will be a streamlined process for moving from a GeoEvent single-machine-multi-site configuration to a multi-machine-single-site configuration once this is all said and done.&lt;/P&gt;&lt;P&gt;It sure would be a headache to go with the former only to have to undertake major efforts to move to the latter at say, 10.6.1 or 10.7&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2018 16:21:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766972#M31</guid>
      <dc:creator>JohnDye2</dc:creator>
      <dc:date>2018-02-07T16:21:32Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766973#M32</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I normally prefer exporting my GeoEvent configuration to an XML file, then uninstalling&amp;nbsp;GeoEvent Server and installing the newer release&amp;nbsp;(vs. following an upgrade-in-place workflow). Product upgrades&amp;nbsp;make more sense for ArcGIS Server and Portal for ArcGIS where exporting and importing your site configuration can be more difficult. For GeoEvent Server, it's really easy to snapshot the configuration as XML and then selectively import just the inputs, outputs, GeoEvent Services (etc.) that you know you're using - or import the entire configuration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the case you're describing, where you want to scale your deployment from a single-machine architecture to a multi-machine architecture ... I would definitely recommend you export the GeoEvent configuration, perform whatever s/w upgrades are needed to move to 10.6, establish your ArcGIS for Server site with its multiple machines and multiple instances of GeoEvent Server, then import your GeoEvent configuration once, from the XML. I would then test to make sure that all GeoEvent Server instances 1) receive the configured elements; and 2) event processing is distributed across the machines in the site when event data is sent to any one machine's input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- RJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2018 22:22:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766973#M32</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2018-02-07T22:22:03Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766974#M33</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the useful pointers. The conversation (&lt;EM&gt;&lt;STRONG&gt;at 10.6&lt;/STRONG&gt;&lt;/EM&gt;)&amp;nbsp;focuses on SCALABILITY to cope with:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;high message volumes resulting from accumulation from multiple sources&lt;UL&gt;&lt;LI&gt;where the recommendation appears to be to use multiple single-machine sites&lt;UL&gt;&lt;LI&gt;so that different sites can consume messages from different sources&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;high message volumes from large single sources&lt;UL&gt;&lt;LI&gt;where the recommendation appears to be to use a multiple-machine site (perhaps waiting first for a patch!)&lt;UL&gt;&lt;LI&gt;so that the messages can be load-balanced across machines&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, what about solution AVAILABILITY, which could manifest as a requirement even when consuming very low message volumes, but where the business criticality of the solution is high?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I assume&amp;nbsp;that this is best met using a multiple-machine site (once patched)? There appears to be a recommendation, however, that multiple-machine sites should have a minimum of 3 GeoEvent Servers. This could feel a bit excessive where message volumes are low. QUESTION 1: Is there a good reason why a multiple-machine site can't just have 2 GeoEvent Servers?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another caveat with a &lt;EM&gt;&lt;STRONG&gt;multiple-machine site&lt;/STRONG&gt;&lt;/EM&gt; appears to be that outputs cannot include Stream Services. As such, there will be a need to store geoevents prior to displaying them in a client, and the client will need to poll a feature service to retrieve them. QUESTION 2: Is that assumption correct?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That then gives rise to the question of whether the spatiotemporal data store (with a potentially higher-cost, multi-node&amp;nbsp;deployment) is overkill for low volume messages. QUESTION 3: Do you have any recommendations as to when to consider deployment of the spatiotemporal data store? (e.g.&amp;nbsp;a threshold level of throughput).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That's probably enough questions for one post... &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Apr 2018 08:38:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766974#M33</guid>
      <dc:creator>DavidMartin</dc:creator>
      <dc:date>2018-04-11T08:38:35Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766975#M34</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;Hello David –&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="color: #0070c0; font-size: 11.0pt;"&gt;&lt;EM&gt;&amp;gt;&amp;gt; However, what about solution AVAILABILITY, which could manifest as a requirement even when consuming very low message volumes, but where the business criticality of the solution is high? I assume that this is best met using a multiple-machine site (once patched)?&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;Perhaps … there are multiple considerations which is why I recommend folks who are looking at scaling out real-time solutions work with their Esri Technical Advisor or contract with Esri Professional Services for consultation. I’ll try to answer you briefly here however.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;Depending on the type of input you are using, a multiple-machine architecture might provide the failover you are looking for. Our testing when using an input which polls an external source for data was very positive. If one machine in a multi-machine site were to go off-line we’ve confirmed that another machine will “adopt” and being running the input so that event ingest doesn’t terminate with the one machine.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;If you’re using an input like a JSON REST receiver, or the TCP/Text input, to push data to GeoEvent, then the burden is on the data provider to specify which machine, endpoint, port, (etc.) to push the data to. The challenge here is that there is no built-in way to signal an external data provider that a particular GeoEvent Server instance has gone off-line, so it is difficult to know when to direct data to a different machine or endpoint. In this case a multi-machine setup is probably not going to help; a significant amount of custom development would be required on your part as a solution architect.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;I might recommend, for the case where you have low event velocity / volume but message data is critical, that you set up multiple independent GeoEvent Server instances to provide basic redundancy. Process the critical inbound data in parallel across multiple redundant instances and write the resulting feature records out to parallel feature services. The challenge, then, is advising consuming clients when to use the primary feature layer and when to switch to a failover.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;Please keep in mind that GeoEvent Server, at a fundamental level, was architected with the assumption that data from sensor networks would be both frequent and periodic. If a reported temperature reading is missed or dropped it’s not a big deal because another will come along from the sensor momentarily.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;This assumption is not entirely compatible with stipulations that every event record is critical, neither frequent nor periodic, and data loss cannot be tolerated. If GeoEvent Server receives the data the system will reliability process and disseminate event and feature records. Network stability, datababase failure, feature service availability and recycling … there are many different points at which a system which distributes capability across multiple components might result in a loss of data. System architecture and solution design can address these, but I do not want to take this discussion into one of general “high availability” which often means different things to different customers in different contexts.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="color: #0070c0; font-size: 11.0pt;"&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="color: #0070c0; font-size: 11.0pt;"&gt;&lt;EM&gt;&amp;gt;&amp;gt; There appears to be a recommendation, however, that multiple-machine sites should have a minimum of 3 GeoEvent Servers. This could feel a bit excessive where message volumes are low. Is there a good reason why a multiple-machine site can't just have 2 GeoEvent Servers?&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;Yes, and it has more to do with general computer science principals than anything specific to GeoEvent Server. If two nodes are receiving input and one goes off-line, when it comes back there is no majority or quorum to stipulate that the node coming back on-line is out-of-date. You are left with two peers, each thinking they have the latest state. When you have three (or more) nodes and one fails, upon recovery the other two can establish for the node coming back on-line what “latest” looks like. So, the recommendation for three GeoEvent Server instances is to avoid a “&lt;A href="https://en.wikipedia.org/wiki/Split-brain_(computing)"&gt;split-brain&lt;/A&gt;” condition.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="color: #0070c0; font-size: 11.0pt;"&gt;&lt;EM&gt;&amp;gt;&amp;gt; Another caveat with a multiple-machine site appears to be that outputs cannot include Stream Services. As such, there will be a need to store geoevents prior to displaying them in a client, and the client will need to poll a feature service to retrieve them. Is that assumption correct?&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;No, you should be able to leverage stream services in either a single-machine or a multi-machine deployment.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;We did find a bug in 10.6 where consumers subscribing to web socket endpoints exposed by machines in a multiple machine deployment would sometimes not receive any feature records. The reason was that the web socket they subscribed to was not actually broadcasting any data. If the client were a web map, for example, a few manual “F5” refresh requests would eventually have the client subscribe via the server instance that actually published the stream service, which was the only one whose web socket was actually broadcasting feature records.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;We’ve addressed that issue and the “primary” stream service is now using the message bus to “fan out” and send feature records to the other stream service instances so that a client can subscribe to any machine’s web socket and get all of the feature records processed across the multiple machines – regardless of which machine received an event record and which machine actually processed the event record. This fix will be included in our first patch for the 10.6 release.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="color: #0070c0; font-size: 11.0pt;"&gt;&lt;EM&gt;&amp;gt;&amp;gt; Do you have any recommendations as to when to consider deployment of the spatiotemporal data store? (e.g. a threshold level of throughput).&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;To quote an associate, you know you’re dealing with big data when your traditional methods and tools begin to fail. Many folks successfully leverage feature services backed by a traditional relational database (RDBMS) and use the Portal’s hosting server’s managed database to persist their feature records.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;Where reliance on an RDBMS begins to fail is when you need to persist more than about 200 events each second. There is a lot of overhead to the REST requests GeoEvent Server has to make on a feature service’s add (or update) feature endpoint to initiate a transaction with a relational data store. Depending on network and database tuning you may discover that transactional latency allows you to persist fewer event records each second. This is the primary reason to consider switching and being using the spatiotemporal big data store.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;GeoEvent Server discovers, through Portal and the Portal hosting server, credentials needed to open a socket connection directly to Elasticsearch (the no-SQL database behind the spatiotemporal big data store). Avoiding REST requests means that feature records can be persisted at much higher velocity into the database.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;A second reason to consider using the spatiotemporal big data store is that Elasticsearch natively provides data replication across multiple nodes when you establish a data ring by installing ArcGIS Data Store (and selecting the spatiotemporal big data store capability) on multiple machines.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;If you include three nodes of the spatiotemporal big data store in your architecture – again, trying to avoid the potential of a split-brain condition – and one of your database server machines were to fail, only one node of the data ring would go off-line. Client requests for data will be redirected to surviving instances. Replicas of your feature records, created automatically and managed by Elasticsearch, will be returned to requesting clients.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;Hope this information helps –&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;RJ&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;&lt;A href="https://community.esri.com/migrated-users/58334"&gt;Josh Joyner&lt;/A&gt;‌&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Apr 2018 19:26:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766975#M34</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2018-04-11T19:26:24Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766976#M35</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Josh - I couldn't have asked for a more comprehensive reply!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just 2 further questions arise from your response:&lt;/P&gt;&lt;P&gt;1/&amp;nbsp;Is there a scheduled release date (or approximate ETA) for the 10.6 patch?&lt;/P&gt;&lt;P&gt;2/ In a multiple-machine site (minimum 3 nodes), should we expect to have to license each and every node with a GeoEvent Server license? (i.e. pay for 3 licenses)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Apr 2018 08:21:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766976#M35</guid>
      <dc:creator>DavidMartin</dc:creator>
      <dc:date>2018-04-12T08:21:08Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766977#M36</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Actually, I have another...:-)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;EM style="color: #3d3d3d; font-size: 11.5pt;"&gt;If you’re using an input like a JSON REST receiver, or the TCP/Text input, to push data to GeoEvent, then the burden is on the data provider to specify which machine, endpoint, port, (etc.) to push the data to.&lt;/EM&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I take it from this that a multiple-machine site exposes no single endpoint for receipt of an http request (whether POST or GET)? If that's the case, then I guess a suitable load balancer needs to be added up-front&amp;nbsp;which can health-check each machine in order to distribute such requests only to healthy ones? Which could just as easily be done with a suite of single-machine sites, for inputs of this nature, provided no gap detection, geo-fencing or similar is required?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For "guaranteed" receipt, the onus would then just remain on the sender (or middleware) to re-send if no 200 OK response is received from GeoEvent Server?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Apr 2018 09:02:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766977#M36</guid>
      <dc:creator>DavidMartin</dc:creator>
      <dc:date>2018-04-12T09:02:37Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766978#M37</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;EM style="color: #1f4e79; font-size: 10.5pt;"&gt;&amp;gt;&amp;gt; Is there a scheduled release date (or approximate ETA) for the 10.6 patch?&lt;/EM&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;We are working now to determine what will be committed for a 10.6.1 final release, what portion of that will be ported back for 10.6 Patch 1 … and if anything critical must be released as part of the patch which cannot be committed to 10.6.1 (not a configuration we desire, but sometimes have to do).&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;I would look for 10.6 Patch 1 to be released by UC in July, but it may come out earlier, as soon as 10.6.1 is handed off to the Esri Release Team for final certification and testing.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;EM style="color: #1f4e79; font-size: 10.5pt;"&gt;&amp;gt;&amp;gt; In a multiple-machine site (minimum 3 nodes), should we expect to have to license each and every node with a GeoEvent Server license? (i.e. pay for 3 licenses)&lt;/EM&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;Yes, every deployment / installation of GeoEvent Server must be licensed using (at least) the GeoEvent Server license for that server role. Optionally you can also apply an ArcGIS Server standard / advanced license to the machine you’ve deployed GeoEvent Server, if you want enable the full capability of the ArcGIS Server on that machine – but it is sufficient to license both the ArcGIS Server and GeoEvent Server using a GeoEvent Server license role if you only want the real-time capabilities on that machine.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;The same, by the way, is not true for ArcGIS Data Store. With a single ArcGIS Enterprise license you can install ArcGIS Data Store on as many machines as you like, configuring each as a node of the spatiotemporal big data store registered with the Portal’s hosting GIS Server, without having to purchase additional licenses for the instances of ArcGIS Data Store you are deploying.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;EM style="color: #1f4e79; font-size: 10.5pt;"&gt;&amp;gt;&amp;gt; I take it from this that a multiple-machine site exposes no single endpoint for receipt of an http request (whether POST or GET)? If that's the case, then I guess a suitable load balancer needs to be added up-front which can health-check each machine in order to distribute such requests only to healthy ones?&lt;/EM&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;That is correct. Nothing related to the GeoEvent Gateway, GeoEvent Server, or ArcGIS Server components provide a single endpoint (in a multiple-machine architecture) to which a data provider can direct data when actively pushing data to GeoEvent Server. Yes, you can probably configure a load balancer with a “sticky session” to establish affinity with a particular instance of GeoEvent Server, using one of the monitoring endpoints in the GeoEvent Server Admin API to determine if that instance is still available. But I’m not the one to advise you on how to do that – I’ve no experience in that area of system architecture.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;EM style="color: #1f4e79; font-size: 10.5pt;"&gt;&amp;gt;&amp;gt; Which could just as easily be done with a suite of single-machine sites, for inputs of this nature, provided no gap detection, geo-fencing or similar is required?&lt;/EM&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;Yes, as I understand load balancing technology, you could use a LB to route event records to a single-machine “silo’d” instance of GeoEvent Server just as easily as you could an instance participating in a multi-machine configuration. The drawback would be that the single machine instance would not have any peers to which it could further distribute event records for real-time event processing. Also, as you note, if the LB did not guarantee that all tracked assets (those with a given TRACK_ID) were routed to the same machine, real-time analytics like Track Gap Detection, Incident Detection, and spatial operations such as ENTER and EXIT will not work consistently as one machine's "state" (i.e. knowledge of a prior event record) is not propagated or shared between machines in a multi-machine site. Geofencing would work, as long as you had explicitly loaded a consistent set of geofences to each GeoEvent Server instance (in a single-machine "silo'd" configuration).&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt;"&gt;&lt;EM style="color: #1f4e79; font-size: 10.5pt;"&gt;&amp;gt;&amp;gt; For "guaranteed" receipt, the onus would then just remain on the sender (or middleware) to re-send if no 200 OK response is received from GeoEvent Server?&lt;/EM&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;No, unfortunately that won’t work. An HTTP / 200 response does not imply success in constructing or handling of an event record.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;Every inbound connector has two components:&amp;nbsp; an adapter and a transport. It is the transport’s responsibility to receive a payload (think “raw bytes”) and confirm with the data provider that the data was successfully received.&amp;nbsp; That’s all the HTTP / 200 response means.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;It is the adapter’s job to reference a schema (e.g. GeoEvent Definition) and construct an event record from the payload provided by its associated transport. That’s why you can configure new connectors to, say, receive JSON over TCP – when out-of-the-box there is only a receive delimited Text over TCP – without writing any code. You are just configuring a new inbound connector paring an out-of-the-box transport with an adapter.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;The HTTP / 200 returned from an inbound connector, by its transport, does not mean that the inbound connector’s adapter was successfully able to instantiate an event record for processing, that the event record was successfully processed by a GeoEvent Service (configuration errors in a processor might end up throwing exceptions) or that an output was able to disseminate the event record’s data.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;- RJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Apr 2018 22:09:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766978#M37</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2018-04-12T22:09:58Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766979#M38</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Again RJ, thanks for a very comprehensive reply. (And sorry for calling you Josh before!)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just one point has confused me a little. In suggesting use of a Load Balancer (LB) to act as a single endpoint for inputs that&amp;nbsp;are actively sent to GeoEvent Server (such as&amp;nbsp;http requests - with input data packaged in a POST / GET), I was imagining that the LB would distribute those requests across machines in a multiple-machine site. As all machines in such a site share the same configuration,&amp;nbsp;any one of them can presumably handle the input?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your suggestion that a "sticky session" might be required leads me to believe there might be a problem with my original understanding, and&amp;nbsp;makes me wonder what the point would be of having the LB in the first place?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do appreciate, however, that where stateful processing is required (&lt;SPAN style="background-color: #ffffff;"&gt;Track Gap Detection, Incident Detection, and spatial operations such as ENTER and EXIT), use of an LB in this fashion would &lt;STRONG&gt;not&lt;/STRONG&gt; be suitable, as multiple-machine sites don't share a track's last-known state across machines.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;My summary understanding:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;A multiple-machine GeoEvent Server site offers:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;- shared configuration (input/output connectors, processors etc) - provided by Zookeeper&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;- event distribution - provided by Kafka&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;... but does &lt;SPAN style="text-decoration: underline;"&gt;NOT&lt;/SPAN&gt; offer:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;- shared track state (a site-level understanding of a track's last-known state)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;- a single endpoint to which inputs can actively be sent&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Apr 2018 11:26:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766979#M38</guid>
      <dc:creator>DavidMartin</dc:creator>
      <dc:date>2018-04-13T11:26:28Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766980#M39</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="https://community.esri.com/migrated-users/8006"&gt;David Martin&lt;/A&gt;‌ - I think your summary / take-away is accurate. A load balancer could be used to simply round-robin event records to available machines because, yes, the inputs on all the machines are configured the same. Doing this may not be optimal as the Kafka event distribution&amp;nbsp;&lt;STRONG&gt;at 10.6&lt;/STRONG&gt;&amp;nbsp;will still attempt to do *its* job and distribute event records with a given TRACK_ID to a single server ... with fail-over to another server only if the primary goes off-line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To clarify, as long as all machines remain up and running, the fact that "state" is not shared between machines does not matter. Kafka is handling event distribution according to TRACK_ID and is sending event records with a given TRACK_ID to a consistent server. It is only when a machine fails and Kafka has to choose a another machine to process event records with that TRACK_ID that event records previously handled by the machine that failed may produce false positive analytics ... since the secondary machine (which has never seen event records with *these* TRACK_ID values before) has to begin to accumulate a history of the event records it is now receiving.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The point I was trying to make is that -- if you elect to handle event distribution yourself, using a round-robin approach across multiple independent "silo'd" instances -- Track Gap Detection, Incident Detection, and spatial operations such as ENTER and EXIT are not going to work because event records with a given TRACK_ID are not being routed to a consistent machine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, the real purpose of the load balancer is not traditional load balancing. The purpose in this case would be to expose a single receiving endpoint (the URL of the LB) to data providers and obscure (from data providers) the fact that multiple endpoints are available. This potentially provides your solution some&amp;nbsp;resiliency when a given machine fails ... ingest does not come to a screeching halt when data providers continue trying to send data to the failed machine's endpoint(s). Your LB, through a "sticky session", would choose which machine should act as the primary ingest node for a given inbound data stream and fail-over to a secondary machine only if the first machine became unavailable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- RJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Apr 2018 21:19:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766980#M39</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2018-04-13T21:19:32Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766981#M40</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Now I get it. I hadn't fully appreciated the extent of the event distribution role that Kafka was performing in allocating events with&amp;nbsp;a common&amp;nbsp;TRACK_ID to an individual server,&amp;nbsp;with failover for resilience. It's presumably a reason to be careful about how (/if?) you populate TRACK_ID on your events, as&amp;nbsp;unless you actually need to maintain track state, it could otherwise reduce the effectiveness of event distribution in a multiple-machine site?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you, &lt;A href="https://community.esri.com/people/rsunderman-esristaff"&gt;rsunderman-esristaff&lt;/A&gt;‌. I couldn't have asked for better support.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Apr 2018 06:37:22 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766981#M40</guid>
      <dc:creator>DavidMartin</dc:creator>
      <dc:date>2018-04-14T06:37:22Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766982#M41</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A href="https://community.esri.com/migrated-users/44379"&gt;RJ Sunderman&lt;/A&gt;‌&lt;/P&gt;&lt;P&gt;I am interested in continuing the discussion that David Martin started and wondered if there have been any more developments with 10.7 with regards to using a multi-machine single site deployment of GeoEvent Server for stream services?&lt;/P&gt;&lt;P&gt;We would like to deploy a multi-GeoEvent Server machine site to subscribe to a number of JMS endpoints, process the feeds and provide 1+ Stream and feature services to Web clients. Are there any deployment patterns that Esri recommend as we are getting mixed messages from the documentation regarding stream services.&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.arcgis.com/home/item.html?id=b6179036d66747e4a620ed522f55c917"&gt;10.6.1 High Availability Tutorial &lt;/A&gt;(Page 23):&amp;nbsp;&lt;EM&gt;Stream services only run on a single machine.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Nick&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Apr 2019 12:03:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766982#M41</guid>
      <dc:creator>NickBoon3</dc:creator>
      <dc:date>2019-04-15T12:03:08Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766983#M42</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Nick -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The reference you highlight, that stream services only run on a single machine, is intended to convey that the JVM used to run GeoEvent Server is the container used to run stream services (unlike traditional map/feature services which have multiple instances and are run by SOC components managed by ArcGIS Server). So the server machine used to publish a stream service is the machine whose GeoEvent Server JVM is running the stream service. However, as I mention above, copies of the Esri Feature JSON records a stream service broadcasts are forwarded to other GeoEvent Server instances in an ArcGIS Server site. This&amp;nbsp;“fan out” allows web clients to subscribe to any machine’s stream service and get all of the feature records processed across&amp;nbsp;a&amp;nbsp;&lt;SPAN&gt;single site, multiple machine solution&lt;/SPAN&gt;&amp;nbsp;– regardless of which machine received an event record and which machine actually processed the event record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A&amp;nbsp;bug (BUG-000114373) with the "fan out" mechanism was addressed with the 10.6.1 release and ported back for release as part of&amp;nbsp;&lt;A href="https://support.esri.com/en/download/7688"&gt;ArcGIS GeoEvent Server 10.6 Patch 2&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The 10.7 release does not include any specific changes that, I think, should influence an system architect to choose a "silo" approach (where multiple independent instances of GeoEvent Server are run, each in their own ArcGIS Server site) vs. a "site" approach whose architecture deploys multiple GeoEvent Server instances configured as part of a single ArcGIS Server site.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If &lt;EM style="text-decoration: underline; "&gt;scalability&lt;/EM&gt; is your primary objective, I would probably recommend the "silo" approach. The solution&amp;nbsp;you architect&amp;nbsp;would need to&amp;nbsp;include an&amp;nbsp;external Apache Kafka (or similar message broker) to handle event record distribution across the multiple independent ArcGIS Server / GeoEvent Server instances. Adopting and maintaining your own Kafka solution introduces its own technical burden, but I think we are finding that, for scalability, this approach lends itself to a system that is easier to maintain and administer overall.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If &lt;EM style="text-decoration: underline; "&gt;reliability&lt;/EM&gt; and fault-tolerance is your primary objective (I really dislike using the term high-availability) then a "site" approach is an option. The solution you architect could deploy multiple ArcGIS Server / GeoEvent Server instances in a single site and rely on the Apache Kafka and Zookeeper built-in to the GeoEvent Gateway to mitigate individual machine failures. But a reliability objective can also be addressed with an an active / active approach using multiple independent instances of GeoEvent Server to build redundancy into a distributed solution for fault-tolerance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are advantages to going with the single site, multiple machines approach for resiliency. Specifically when your solution relies on GeoEvent Server polling external web servers / web services for data (which you mentioned), we have observed that the GeoEvent Gateway reliably mitigates the failure of a single node -- which had been the node polling for input -- by allowing another node to "adopt" the input and begin handling the data polling activity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are also significant system complexity and administration disadvantages to the "site"&amp;nbsp;&lt;SPAN&gt;approach,&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;which is why I recommend folks who are&amp;nbsp;considering multiple machine, distributed architectures&amp;nbsp;for real-time solutions work with their Esri Technical Advisor or contract with Esri Professional Services for consultation. Only after discussing specific objectives and weighing both the pros and cons can a recommendation be made as to which approach your solution ought to take.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; "&gt;- RJ&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Apr 2019 18:05:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766983#M42</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2019-04-15T18:05:03Z</dc:date>
    </item>
    <item>
      <title>Re: GeoEvent and High Availibility</title>
      <link>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766984#M43</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi RJ, Thank you for a very quick and comprehensive reply which has clarified what I thought/hoped! We are interested in a reliable/fault-tolerant system so the multi-machine GE Site is our preferred pattern. We have engaged with our local Esri professional services team and will be used to validate any design decision I or my team make.&lt;/P&gt;&lt;P&gt;If I am lucky enough to get to the UC this year I will buy you a beer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards&lt;/P&gt;&lt;P&gt;Nick&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Apr 2019 07:42:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/high-availability-and-disaster-recovery-questions/geoevent-and-high-availibility/m-p/766984#M43</guid>
      <dc:creator>NickBoon3</dc:creator>
      <dc:date>2019-04-16T07:42:19Z</dc:date>
    </item>
  </channel>
</rss>

