...
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. 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. 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. - 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.
...
- id: (int) Region Id
- name: (String) Name of the Region
- endpoint: (String) Region end point. e.g. http://10.147.30.11:8080/client
- userapikey: (String)API key of the Admin user
- usersecretkey: (String)Secret key of Admin user
...
updateRegion
Updates region details
...
- id: (int)Region Id
- name: (String)Name of the Region
- endpoint: (String)Region end point. e.g. https://10.147.30.11:8080/client
- userapikey: (String)API key of the Admin user
- usersecretkey: (String)Secret key of Admin user
removeRegion
Removes region from current region.
...
- userapikey: (String)Get user details by API key
Limitations
...
Upgrade
During upgrade, flexibility will be provided to move existing zones into any Region.
...