You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: design/one-pager-change-logs.md
+32-37Lines changed: 32 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,8 +9,8 @@
9
9
* To build further trust and confidence in Crossplane, we will log every
10
10
operation that is performed on all managed resources
11
11
* The managed reconciler will generate a record of each change made to an
12
-
external system, as well as the state of the resource before and after the
13
-
operation
12
+
external system, as well as the full desired and observed state of the
13
+
resource before the operation is performed
14
14
* Each change log entry will be sent over gRPC to a sidecar container in the
15
15
provider pod, where it will be persisted as a standard pod log
16
16
* Pod logs are a very standard location that allows many different tools to view
@@ -84,19 +84,10 @@ Each entry in the change log will contain the following data:
84
84
| Name |`dev-instance-bt66d`|
85
85
| External Name |`vpc-4fa03d9fb92dfec50`|
86
86
| Operation Type |`create\|update\|delete`|
87
-
| Before operation desired/observed state of resource |`{full JSON dump of resource}` which includes desired `spec.forProvider` and observed `status.AtProvider`|
88
-
| After operation desired/observed state of resource |`{full JSON dump of resource}` which includes desired `spec.forProvider` and observed `status.AtProvider`|
87
+
| Desired/observed state of resource before operation |`{full JSON dump of resource}` which includes desired `spec.forProvider` and observed `status.AtProvider`|
89
88
| Result of operation |`success` or error object |
90
89
| (optional) Additional information that Providers can set as they choose |`{JSON object of arbitrary data}`|
91
90
92
-
Note that we are capturing the full state of the resource both **before** and
93
-
**after** the operation is performed. We could instead just record the "before"
94
-
state during each reconciliation, but that would paint a less complete picture
95
-
compared to observing the external system and recording the "after" state
96
-
immediately after the operation as well. If we find during implementation and
97
-
testing that recording the "after" state places too much burden on the system,
98
-
we can revisit this decision.
99
-
100
91
An additional information field is available in each change log entry for
101
92
Providers to store any provider specific data they choose. Providers are not
102
93
required to store any data at all in this field, as it is optional. As an
@@ -107,13 +98,13 @@ change log entry.
107
98
#### Quantity of Generated Data
108
99
109
100
From testing during prototyping, a typical change log entry was found to be
110
-
around 6KB in size, including both the full "before" and "after" states of the
101
+
around 4KB in size, including both the full desired and observed state of the
111
102
resource. To get an idea of the total quantity of data this feature is expected
112
103
to generate, we can use the below calculations for a very rough estimate:
0 commit comments