@@ -53,7 +53,7 @@ stateDiagram-v2
5353 NGINX2: NGINX
5454 INPUT: Input
5555 SOT: Source of Truth
56- NDAPI: NGINX Declarative API Core
56+ NDAPI: NGINX Declarative API
5757 DEVP: Developer Portal Service
5858 OUTPUT: Output
5959 REDIS: Redis
@@ -89,14 +89,14 @@ title GitOps autosync operations
8989
9090participant CI/CD Pipeline
9191participant Source of Truth
92- participant NGINX Declarative API Core
92+ participant NGINX Declarative API
9393participant Redis
9494participant Developer Portal Service
9595participant NGINX Instance Manager / NGINX One Console
9696participant NGINX
9797
9898box NGINX Declarative API
99- participant NGINX Declarative API Core
99+ participant NGINX Declarative API
100100 participant Developer Portal Service
101101 participant Redis
102102end
@@ -105,27 +105,78 @@ CI/CD Pipeline ->> Source of Truth: Commit object updates
105105
106106critical Run every "synctime" seconds
107107
108- NGINX Declarative API Core ->>+ Source of Truth: Check for referenced objects updates
109- Source of Truth ->>- NGINX Declarative API Core : Latest timestamp
108+ NGINX Declarative API ->>+ Source of Truth: Check for referenced objects updates
109+ Source of Truth ->>- NGINX Declarative API: Latest timestamp
110110
111- Note over NGINX Declarative API Core , Redis: data synchronization
111+ Note over NGINX Declarative API, Redis: data synchronization
112112
113113option If updates available
114- NGINX Declarative API Core ->>+ Source of Truth: Pull updated objects
115- Source of Truth ->>- NGINX Declarative API Core : Updated objects
114+ NGINX Declarative API ->>+ Source of Truth: Pull updated objects
115+ Source of Truth ->>- NGINX Declarative API: Updated objects
116116
117117critical Build Staged Config
118118critical If Developer Portal enabled
119- NGINX Declarative API Core ->>+ Developer Portal Service: DevPortal generation request
120- Developer Portal Service ->>- NGINX Declarative API Core : DevPortal definition
119+ NGINX Declarative API ->>+ Developer Portal Service: DevPortal generation request
120+ Developer Portal Service ->>- NGINX Declarative API: DevPortal definition
121121end
122122end
123123
124- NGINX Declarative API Core ->>+ NGINX Instance Manager / NGINX One Console: Publish staged config to instance group / config sync group
124+ NGINX Declarative API ->>+ NGINX Instance Manager / NGINX One Console: Publish staged config to instance group / config sync group
125125NGINX Instance Manager / NGINX One Console ->> NGINX: Publish config to NGINX instances
126- NGINX Instance Manager / NGINX One Console ->>- NGINX Declarative API Core: Publish outcome
126+ NGINX Instance Manager / NGINX One Console ->>- NGINX Declarative API: Return outcome
127127
128- Note over NGINX Declarative API Core, Redis: data synchronization
128+ Note over NGINX Declarative API, Redis: data synchronization
129+
130+ end
131+ ```
132+
133+ ## Concurrent access and queuing mode
134+
135+ ``` mermaid
136+ sequenceDiagram
137+
138+ title Concurrent access and queueing mode
139+
140+ participant CI/CD Pipeline
141+ participant NGINX Declarative API
142+ participant NGINX Instance Manager / NGINX One Console
143+ participant NGINX
144+
145+ critical Initial configuration deployment
146+
147+ CI/CD Pipeline ->> NGINX Declarative API: POST request - base configuration deployment
148+
149+ NGINX Declarative API ->>+ NGINX Instance Manager / NGINX One Console: Publish staged config to instance group / config sync group
150+ NGINX Instance Manager / NGINX One Console ->> NGINX: Publish config to NGINX instances
151+ NGINX Instance Manager / NGINX One Console ->>- NGINX Declarative API: Return outcome
152+
153+ NGINX Declarative API ->> CI/CD Pipeline: Response
154+
155+ end
156+
157+ critical Asynchronous configuration submission
158+
159+ CI/CD Pipeline ->> NGINX Declarative API: PATCH request - asynchronous configuration update 1
160+ NGINX Declarative API ->>+ NGINX Declarative API: request added to the queue
161+ CI/CD Pipeline ->> NGINX Declarative API: PATCH request - asynchronous configuration update 2
162+ NGINX Declarative API ->>+ NGINX Declarative API: request added to the queue
163+
164+
165+ loop Queue Manager Thread
166+ autonumber 1
167+
168+ NGINX Declarative API ->>+ NGINX Declarative API: get configuration update request from queue
169+
170+ NGINX Declarative API ->>+ NGINX Instance Manager / NGINX One Console: Publish staged config to instance group / config sync group
171+ NGINX Instance Manager / NGINX One Console ->> NGINX: Publish config to NGINX instances
172+ NGINX Instance Manager / NGINX One Console ->>- NGINX Declarative API: Return outcome
173+ NGINX Declarative API ->> NGINX Declarative API: Update configuration update request status
174+
175+ autonumber off
176+ end
177+
178+ CI/CD Pipeline ->> NGINX Declarative API: Check configuration request status
179+ NGINX Declarative API ->> CI/CD Pipeline: Response
129180
130181end
131182```
@@ -147,9 +198,9 @@ See the [features list](/FEATURES.md)
147198
148199Usage details and JSON schema are available here:
149200
150- - [ API v5.2 ] ( /USAGE-v5.2 .md ) - latest - required for NGINX Plus R33+
151- - [ API v5.1 ] ( /USAGE-v5.1 .md )
152- - [ API v5.0 ] ( /USAGE-v5.0 .md ) - deprecated
201+ - [ API v5.3 ] ( /USAGE-v5.3 .md ) - latest - required for NGINX Plus R33+
202+ - [ API v5.2 ] ( /USAGE-v5.2 .md ) - stable - required for NGINX Plus R33+
203+ - [ API v5.1 ] ( /USAGE-v5.1 .md ) - deprecated
153204
154205A sample Postman collection and usage instructions can be found [ here] ( /contrib/postman )
155206
0 commit comments