Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Create Account

    Create Account A1 in Region1 (Region Id 1). Publish account creation event. Source Region Id for A1 will be 1. External Id(UUID) for the Account should be same in all Regions. Account DB Ids could be different for each Region. 
  2. Update Account (update/disable/enable Account)

    Account update actions are forwarded to the source Region. After source Region is successfully updatedAfter updating the account, account update event is published. Account update fails if the source Region cannot be updated or is unavailable. 
  3. Delete Account

    Delete Account is forwarded to the source Region. After account is successfully  deleted in the source Regiondeleted, delete event is published. Account delete fails if the delete in source Region fails or is unavailable. 
  4. Login to Region A and move to Region B without providing credentialsSimilarly for users and domains.

...

Table

Columns

Description

region

id
name
end_point
api_key
secret_key
point 

Integer - Unique Id of the Region. Number regions are expected to be small, hence using integer instead of long
Name of the Region. Should be unique.
Region end_point. e.g http://10.147.30.11:8080/client
api_key of the admin user
secret_key of the admin user

 

 

 

Changes to existing tables

Table

New Columns

Description

user

region_id

ID of the source Region

account

region_id

ID of the source Region

domain

region_id

ID of the source Region

Data synchronization

Accounts:

  • When creating the account, it is created first in the Region that the user is logged intoAccount table will include region_id column, indicating the Region that it is created from
  • This Region publishes account creation event
  • Account deletion/modification is always forwarded to the Region that originally created the account 
  • Admin user api_key/secret_key are used to make API calls to peer regions. api_key/secret_key are provided while adding the Region.

The same applies for Domains and Users.

Create: For any resource created in Region A, MS is Region A  will publish an event along with external Id of the resource.

Update/Remove: Request is forwarded to the source region For any resource modification in Region A, MS is Region A  will publish an event along with external Id of the resource.

Event framework

Events are published using the event framework. Cloud operator is expected to implement consumers for these events and apply the changes in the peer regions.

...

  1. id: (int) Region Id 
  2. name: (String) Name of the Region
  3. endpoint: (String) Region end point. e.g. http://10.147.30.11:8080/client 
  4. userapikey: (String)API key of the Admin user
  5. usersecretkey: (String)Secret key of Admin user

...

updateRegion

Updates region details

...

  1. id: (int)Region Id
  2. name: (String)Name of the Region
  3. endpoint: (String)Region end point. e.g. https://10.147.30.11:8080/client
  4. userapikey: (String)API key of the Admin user
  5. usersecretkey: (String)Secret key of Admin user

removeRegion

Removes region from current region.

...

  1. userapikey: (String)Get user details by API key 

Limitations

...

Upgrade

During upgrade, flexibility will be provided to move existing zones into any Region.

...