SPEKTRA Edge Limits Service Design

Understanding the SPEKTRA Edge resource limit design.

Limits service is a fairly one of those services with special design. Service itself should be known from the user guide already and in some part from the developer guide. Knowledge about plans is assumed. Limits also is one of the standard services, and its code structure in the SPEKTRA Edge repository (limits directory) should be familiar.

What needs explanation is how Limits ensures that “values” don’t get corrupted, lost, over-allocated, etc. First, resources are allocated in each service, but resource limits.edgelq.com/Limit belongs to a Limits service. Therefore, we can’t easily guarantee counter-integrity if the resource is created in one service and counted elsewhere. Next, we know that limit values are passed from service to organizations, then to potential child organizations, and eventually to projects. From MultiRegion design, we know that each organization and project may point to a main region where resources are kept. Therefore, we know that organizations/{organization}/acceptedPlans/{acceptedPlan} is in the organization’s region, and projects/{project}/planAssignments/{planAssignment} is in the project’s region, may be different. This document describes how these Limits work in this case.

We will also be showing code pointers, where things can be found.

During this guide, you will find out why parallel creations/deletions are not parallel!


Service Limit Initialization

Understanding how the SPEKTRA Edge service limit initialized.

Project and Organization Limit Initialization

Understanding how the project and organization limit initialized.

AcceptedPlan Update Process

Understanding the AcceptedPlan update process.

Resource Limit Assignment

Understanding the resource limit assignment.

Resource Limit Tracking

Understanding how the resource limit is tracked.

Project and Organization Deletion Process

Understand the project and organization deletion process.