-
Notifications
You must be signed in to change notification settings - Fork 3
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
docs: [FUN-449] Add what is it for doc #507
Conversation
## What should I use it for? | ||
|
||
`dev-server` is intended as a replacement for creating certain kinds of environments in the LD app itself that are not part of a flag's release path e.g. Staging, UAT, QA, Production. The most common examples of this are local development environments and ephemeral CI environments. | ||
|
||
## What should I not use this for? | ||
|
||
You should refrain from using `dev-server` for any release path critical environments, as well as environments where complex targeting logic is required. Currently, `dev-server` only supports serving a single variation and supports no targeting logic. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like this is saying the same thing twice i.e. "don't use this for anything besides local dev and ephemeral CI environments"
While writing, I kept dreaming up weird use cases for this but I think we want to steer folks away from that kind of thing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah. I think that there are a few points we want to make here.
- don't ever use the dev server for a prod workload because it might not work
- the dev server is for local dev & CI environments
- because it's for environments with a single user, it's simpler and has fewer features
- no targeting
- the dev server should still guide you to shipping your code safely and minimize surprises as you get to prod
- so you can't create flags, you have to pull them from a real environment and iterate from there
Probably also need a sentence to describe what this doc is, I think it's less of how to use the dev server, but more of like "what is it supposed to do and why".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mike-zorn Okay made some pretty significant edits
internal/dev_server/manifesto.md
Outdated
|
||
We implemented it this way in order to solve a problem common both internally and amongst our userbase where an environment would get created per developer on a project as well as per CI build. As you could expect, this becomes exponentially harder to maintain as the number of environments scales both technically and from a process perspective - something has to clear out those environments after all! | ||
|
||
Another intentional design decision was the choice not to allow the creation of local-only flags. A running `dev-server` can only pull from a real environment. From there, you can override the served value for your local environment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rewrite this without mentioning local-only flags. That's a feature we've discussed internally, but isn't something a reader of this doc will know about. I think you want to frame it as "flags must first exist in the source environment" or similar.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor notes, but looks good otherwise!
Co-authored-by: Mike Zorn <[email protected]>
Co-authored-by: Mike Zorn <[email protected]>
This PR adds the what is it for doc and makes a minor grammar correction in the main README.