Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redesign controller API #337

Closed
Gudahtt opened this issue Feb 9, 2021 · 1 comment
Closed

Redesign controller API #337

Gudahtt opened this issue Feb 9, 2021 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@Gudahtt
Copy link
Member

Gudahtt commented Feb 9, 2021

The controller API is being redesigned, as described by this proposal: https://www.notion.so/Background-Controller-Redesign-9068b038255c40d0937f8549c9c62f49

@Gudahtt Gudahtt self-assigned this Feb 9, 2021
Gudahtt added a commit that referenced this issue Feb 19, 2021
This is the new base controller we'll be transitioning to as part of
the controller redesign (#337). It has been added as a separate module
so that we can transition each controller more easily, one at a time.

Additional features will be added in future PRs (e.g. schema,
messaging).
Gudahtt added a commit that referenced this issue Feb 19, 2021
This is the new base controller we'll be transitioning to as part of
the controller redesign (#337). It has been added as a separate module
so that we can transition each controller more easily, one at a time.

Additional features will be added in future PRs (e.g. schema,
messaging).
Gudahtt added a commit that referenced this issue Feb 19, 2021
This is the new base controller we'll be transitioning to as part of
the controller redesign (#337). It has been added as a separate module
so that we can transition each controller more easily, one at a time.

Additional features will be added in future PRs (e.g. schema,
messaging).
Gudahtt added a commit that referenced this issue Feb 19, 2021
This is the new base controller we'll be transitioning to as part of
the controller redesign (#337). It has been added as a separate module
so that we can transition each controller more easily, one at a time.

Additional features will be added in future PRs (e.g. schema,
messaging).
Gudahtt added a commit that referenced this issue Feb 19, 2021
This is the new base controller we'll be transitioning to as part of
the controller redesign (#337). It has been added as a separate module
so that we can transition each controller more easily, one at a time.

Additional features will be added in future PRs (e.g. schema,
messaging).
Gudahtt added a commit that referenced this issue Feb 20, 2021
A schema has been added to the new BaseController class as a required
constructor parameter. The schema describes which pieces of state
should be persisted, and how to get an 'anonymized' snapshot of the
controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 20, 2021
A schema has been added to the new BaseController class as a required
constructor parameter. The schema describes which pieces of state
should be persisted, and how to get an 'anonymized' snapshot of the
controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 20, 2021
Subscribers of the new BaseController will now also receive a patch for
each state change, in addition to a copy of the new state. Patches can
make it easier to efficiently serialize state updates.

This was done as part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 23, 2021
This is the new base controller we'll be transitioning to as part of
the controller redesign (#337). It has been added as a separate module
so that we can transition each controller more easily, one at a time.

Additional features will be added in future PRs (e.g. schema,
messaging).
Gudahtt added a commit that referenced this issue Feb 23, 2021
A schema has been added to the new BaseController class as a required
constructor parameter. The schema describes which pieces of state
should be persisted, and how to get an 'anonymized' snapshot of the
controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 23, 2021
A schema has been added to the new BaseController class as a required
constructor parameter. The schema describes which pieces of state
should be persisted, and how to get an 'anonymized' snapshot of the
controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 23, 2021
Subscribers of the new BaseController will now also receive a patch for
each state change, in addition to a copy of the new state. Patches can
make it easier to efficiently serialize state updates.

This was done as part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 24, 2021
Subscribers of the new BaseController will now also receive a patch for
each state change, in addition to a copy of the new state. Patches can
make it easier to efficiently serialize state updates.

This was done as part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 24, 2021
A schema has been added to the new BaseController class as a required
constructor parameter. The schema describes which pieces of state
should be persisted, and how to get an 'anonymized' snapshot of the
controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 25, 2021
A schema has been added to the new BaseController class as a required
constructor parameter. The schema describes which pieces of state
should be persisted, and how to get an 'anonymized' snapshot of the
controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 26, 2021
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 26, 2021
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 26, 2021
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 26, 2021
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

The metadata describes top-level properties only, but it allows you to
define a function to derive the anonymized or persistent state for each
property. The only requirement of this derivation function is that the
output is also valid JSON.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 26, 2021
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

The metadata describes top-level properties only, but it allows you to
define a function to derive the anonymized or persistent state for each
property. The only requirement of this derivation function is that the
output is also valid JSON.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Feb 26, 2021
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

The metadata describes top-level properties only, but it allows you to
define a function to derive the anonymized or persistent state for each
property. The only requirement of this derivation function is that the
output is also valid JSON.

This is part of the controller redesign (#337).
Gudahtt added a commit that referenced this issue Mar 2, 2021
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

The metadata describes top-level properties only, but it allows you to
define a function to derive the anonymized or persistent state for each
property. The only requirement of this derivation function is that the
output is also valid JSON.

This is part of the controller redesign (#337).
@Gudahtt
Copy link
Member Author

Gudahtt commented Jun 23, 2021

This will be an ongoing effort, but I'm going to close this for now, as it has basically been accomplished by the new BaseControllerV2 class. And it has been used already by one controller, the CurrencyRateController.

@Gudahtt Gudahtt closed this as completed Jun 23, 2021
MajorLift pushed a commit that referenced this issue Oct 11, 2023
This is the new base controller we'll be transitioning to as part of
the controller redesign (#337). It has been added as a separate module
so that we can transition each controller more easily, one at a time.

Additional features will be added in future PRs (e.g. schema,
messaging).
MajorLift pushed a commit that referenced this issue Oct 11, 2023
Subscribers of the new BaseController will now also receive a patch for
each state change, in addition to a copy of the new state. Patches can
make it easier to efficiently serialize state updates.

This was done as part of the controller redesign (#337).
MajorLift pushed a commit that referenced this issue Oct 11, 2023
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

The metadata describes top-level properties only, but it allows you to
define a function to derive the anonymized or persistent state for each
property. The only requirement of this derivation function is that the
output is also valid JSON.

This is part of the controller redesign (#337).
MajorLift pushed a commit that referenced this issue Oct 11, 2023
This is the new base controller we'll be transitioning to as part of
the controller redesign (#337). It has been added as a separate module
so that we can transition each controller more easily, one at a time.

Additional features will be added in future PRs (e.g. schema,
messaging).
MajorLift pushed a commit that referenced this issue Oct 11, 2023
Subscribers of the new BaseController will now also receive a patch for
each state change, in addition to a copy of the new state. Patches can
make it easier to efficiently serialize state updates.

This was done as part of the controller redesign (#337).
MajorLift pushed a commit that referenced this issue Oct 11, 2023
State metadata has been added to the new BaseController constructor as
a required constructor parameter. The metadata describes how to derive
the state that should be persisted, and how to derive an 'anonymized'
representation of the controller state.

The metadata describes top-level properties only, but it allows you to
define a function to derive the anonymized or persistent state for each
property. The only requirement of this derivation function is that the
output is also valid JSON.

This is part of the controller redesign (#337).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant