As discussed in today's community meeting, we still don't love the static/dynamic terminology used to differentiate SDKs targeting client vs server. Some background from the proposed spec PR:
### Dynamic-Context Paradigm
Server-side use cases typically perform flag evaluations on behalf of many users, with each request or event being associated with a particular user or client. For this reason, server frameworks typically operate similarly to this:
- the application is initialized with some static context (geography, service name, hostname, etc)
- with each request or event, relevant dynamic context (for example, user session data) is provided to flag evaluations
### Static-Context Paradigm
In contrast to server-side or other service-type applications, client side applications typically operate in the context of a single user. Most feature flagging libraries for these applications have been designed with this in mind. Frequently, Client/web libraries operate similarly to this:
- an initialization occurs, which fetches evaluated flags in bulk for a given context (user)
- the evaluated flags are cached in the library
- flag evaluations take place against this cache, without a need to provide context (context was already used to evaluate flags in bulk)
- functions are exposed on the libraries that signal the cache is no longer valid, and must be reconciled based on a context change, frequently involving a network request or I/O operation
It seems like there's a general consensus these characterizations are adequate, but the names for them are not.
I'd like to use this issue to brainstorm and vote on some better names. Here's a short list from the meeting, as well as a couple I've heard elsewhere or came up with:
As discussed in today's community meeting, we still don't love the
static/dynamic
terminology used to differentiate SDKs targeting client vs server. Some background from the proposed spec PR:It seems like there's a general consensus these characterizations are adequate, but the names for them are not.
I'd like to use this issue to brainstorm and vote on some better names. Here's a short list from the meeting, as well as a couple I've heard elsewhere or came up with:
dynamic context
/static context
dynamic context
/ambient context
server context
/client context
multi-user context
/single-user context
multi-subject context
/single-subject context
mutli-context
/single-context