Skip to content
Craig Shoemaker edited this page Oct 15, 2020 · 2 revisions

Livewire architecture

The Livewire architecture is based off a series of serverless functions which create a system that remains perpetually updated without the need for data entry.

As resources are added to the system, the Livewire backend contacts GitHub and the VS Code Marketplace and updates the database with relevant changes in the projects. GitHub repositories provide metadata to Livewire via a livewire.config.json file and from the GitHub REST API, while VS Code extensions get provide information from the marketplace website and the GitHub API.

The following items correspond the the numbers in the above diagram and are the lifeblood of Livewire:

  1. Resources (as GitHub repositories or VS Code extensions) are added to the database by providing a URL to the resource.
  2. Based on a schedule, the system checks GitHub and the VS Code Marketplace for any changes to items. Changes are saved to a message queue for processing.
  3. As messages are added to the queue, the database is updated with the latest changes from the web.
  4. The Livewire UI is then provided with a shaped and aggregated view of the raw data for the display and filtering on the client.
  5. If immediate updates are required for a resource, an endpoint is available for on-demand updates to the database.
Clone this wiki locally