Theme #5 - CONNECTIONS TO EVE [3/3]

Insurgency and deeper links into Quasar

Though the backends of EVE Vanguard and EVE Online have been developed independently, they share a lot of common DNA. Most notably the adoption of an Event Driven Architecture (EDA), and some common tech choices in the use of Golang, Protobuf and gRPC.

EDAs produce highly flexible and decoupled systems that can grow organically while maintaining scalability and resilience. In an EDA, all state changes are captured as “events” and published onto a central message bus. An example event might describe a character undocking from a station, what ship they undocked in, and what modules were fitted to that ship.

Once an event type is being published onto the message bus, consumers can choose to subscribe and react to that event. The publisher of the event is unconcerned with the event’s consumers, and so new system behaviour can be built independently of existing behaviour. (see image 1)

To link into EVE Online, the Vanguard Backend was setup as a trusted publisher of events into Quasar (EVE Online’s backend), and used this connection to publish events about contracts completed in Vanguard. Insurgency services in Quasar listen out for these events, ascribe active insurgency information to them, and aggregate them into the insurgency totals for the appropriate solar systems.

When it came to building this connection between Vanguard and Eve Online, the initial challenges were technical. To become a trusted source of events, a publisher must connect to Quasar’s internal gRPC gateway service; and to connect to that, the publisher must be within the same private network as the gateway, and be authenticated using CCP’s Private Key Infrastructure (PKI) to acquire an mTLS client certificate. (see image 2)

In the run-up to First Strike, the Vanguard backend team re-deployed both our development and production environments into new subnets that could be connected into the wider CCP network without address conflicts. We were then able to connect to CCP’s PKI services to sign our client certificate and use that to connect to the Quasar internal gateway! Fortunately a Golang client SDK already existed for interacting with the Gateway, so we were able to integrate that into the Vanguard Backend without too much difficulty. (see image 3)

Now that we’ve proven out the technical aspects of this inter-game communication, we want to next look at maturing our integration by simplifying the client SDK to bypass the need for a PKI Agent, and building support for bi-directional communication so that the Vanguard backend can react to events coming from EVE Online. (see image 4)

A bi-directional link into Quasar would allow for Vanguard’s game systems to react to events that happen in Eve Online in realtime. This opens up all kind of possibilities for inter-game gameplay and we’d love to hear your ideas for how we could use this!

Until next time,
o7

Image1

Image2

image4