Inside Esri ArcGIS GeoEvent Server

From Wildsong
Jump to navigationJump to search

2022-07-16 I am looking at version 10.9.1

No doubt this thing is properly engineered to sustain high data rates. But most of us have no use for this. So I am pretty much done here. I think I've listed the main components used here, and that I could cobble together a low performance low data rate system on my own now.

Architecture

I would love an article on the architecture of this system, I don't have one. Just a few clues.

I found many properties files. Looks like it streams events over a web socket.

The event processor is probably based on Apache Kafka, that's probably the core of this system.

They are using RabbitMQ as the message broker, using AMQP as the protocol.

It uses something called AKKA too. https://doc.akka.io/docs/akka/current/typed/guide/introduction.html

What the heck is a modulith? (That's what they call Karaf)

GeoEvent Server installs Apache Karaf which is a Java container server, so somewhere there must be I don't know, a jar file? containing the actual Esri application code.


The Esri installer "Setup.sh" looks for a licensed server and then runs the installer for Karaf, which is in a bundled tar ball.

There are some files in GeoEvent, ArcGISGeoEvent-service and ArcGISGeoEvent-wrapper Looks like -service runs the wrapper and the wrapper runs as the user and starts something else? When I run the wrapper, it references https://wrapper.tanukisoftware.com/doc/english/home.html It reads a config file setup at install time and then starts the actual Java service.

Resources

Apache Karaf Github