• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Decision Log for SDK V2 Waiters
2
3Note: The decision log process was implemented late in this project, so decisions earlier than 9/22/20 are not included
4below.
5
6## Log Entry Template
7
8**Source:** (Meeting/aside/pair programming discussion/daily standup) to (discuss/implement) X
9
10**Attendees:** Anna-Karin, Ben, Dongie, Irene, Matt, Nico, Vinod, John, Zoe
11
12**Closed Decisions:**
13
141. Question? Decision. Justification.
15
16**Open Decisions:**
17
181. (Old/Reopened/New) Question?
19
20## 9/22/20
21
22**Source:** Meeting to review API surface-area of the waiters implementation https://github.com/aws/aws-sdk-java-v2/tree/waiters-development
23
24**Attendees:** Anna-Karin, Ben, Dongie, John, Matt, Nico, Vinod, Zoe
25
26**Closed Decisions:**
27
281. Should we change the default `ScheduledExecutorService` core number? Yes, it should be changed to 1 because it's only used to schedule attempts and 5 seems to be a lot.
292. Should we relax the validation of `DynamodbEnhancedClient#Builder` and update `DynamodbEnhancedClient.builder().build()` to create a default SDK client? Yes, because `DynamodbEnhancedClient.builder().build` should be equivalent to `DynamodbEnhancedClient.create()`
303. Should we make the generic `Waiter` non-public? No, because it is essentially a protected API and has to be backwards-compatible any way. In addition, customers can benefit from it
31when service waiters are not available.
324. Should we create a union type `ResponseOrException`? Yes, because it clearly indicates response and exception are mutually exclusive and only one is present. We should keep the naming `ResponseOrException` because it's intuitive and descriptive.
335. Should we rename `WaiterResponse#responseOrExecption`? Yes, we should rename it to `WaiterResponse#matched` because it has the most votes compared with other options: `matchedResponse`, `matchedResult`, `matchedValue`
346. Should we rename `{Service}Waiter.Builder#executorService`? Yes, we should rename it to `{Service}Waiter.Builder#scheduledExecutorService` to be more clear it's a `ScheduledExecutorService`
357. Should we rename `Waiter.Builder#pollingStrategy`? Yes, we should rename it to `Waiter.Builder#waiterOverrideConfiguration` so that we can easily add more configurations if needed. All configs under `WaiterOverrideConfiguration` should have default values to be consistent with `ClientOverrideConfiguration`
368. Should we support per request waiter configuration override? Yes, it's a reasonable feature that we should support by creating an overloaded method which takes a `WaiterOverrideConfiguration` parameter to allow request-level config override for every waiter operation, eg: `DynamodbWaiter#waitUntilTableExists(DescribeTableRequest, WaiterOverrideConfiguration)`? Yes,
37
38**Open Decisions:**
39
40None