How Kite works

How data flows

In a simplified view of the Kite system, there are a number of important components. Some of these components function locally on your own computer while the components which constitute the Kite backend function remotely in the cloud. We'll describe briefly the roles each component plays.

Local components

Editor

You'll primarily access Kite's services through your editor. In some cases, Kite will send data back to your editor automatically while in other cases, you may need to request information from Kite explicitly.

Plugin

The plugin is a piece of software which integrates directly with your editor. Kite ships with plugins for all the supported editors, though theoretically, anyone could write a plugin for any editor. The main responsibility of the plugin is to send and receive data as you interact with the editor. When sending data, the plugin uses the Kite API and when receiving data, the plugin uses the editor's API (to render responses, for example).

Kite Engine

The Kite Engine is essentially an HTTP server listening at localhost:46624. It exposes a REST API for the plugin to interact with and forwards requests to our remote servers. It is also responsible for ensuring that files on your computer are synced to the cloud.

Remote components

Kite backend

The Kite backend refers to a set of services that run on our own servers. These include, but are not limited to, our code analysis engine and large datasets that we use to enhance data sent back to the editor. From the user's perspective, these individual services function collectively as a cohesive unit.