Add development mode
This is an umbrella issue for tracking efforts around introducing a development mode for our users. It is currently not clear how the development mode should behave. We need to collect more feedback and ideas.
### Tasks
- [ ] Idea: Automatic service registration on code changes
- [ ] Idea: No retries for failing requests
- [ ] Idea: CLI command to cleanup service state
- [ ] https://github.com/restatedev/restate/issues/895
- [ ] https://github.com/restatedev/restate/issues/827
The previous issue can be found here. We also created a design document before.
Will probably be covered by the CLI (#888) eventually.
@slinkydeveloper what prevented us from merging the original dev mode. I faintly remember that it had something to do with invoking Docker on different platforms.
I faintly remember that it had something to do with invoking Docker on different platforms.
It wasn't that AFAIR, because I fixed it with having slight code differences depending on the platform. Maybe it was something about having the typescript experience? https://github.com/restatedev/sdk-typescript/pull/23
Some more ideas:
- Testing utilities such as mocks for side effects, fixtures or pre-loaded states that can be used to test workflows that check an initial state.
- Ability to invoke a service using a transport different from the one used in production.
- Replay of an invocation
- Breakpoints:
- when reaching a set state or side effect, i.e. pause execution until the developer resumes it
- on errors
- when a condition on a set turns to true
- Durable timers related tests: don't actually wait for duration but provide wrappers for the system time that can be used to simulate the expected behavior.
Thanks a lot for your ideas @oferh. I think these things would be really awesome to have for Restate :-) For the test utility related ideas, we do have https://github.com/restatedev/sdk-typescript/issues/101 which aims at providing better testing utilities for the TS SDK. For the Java SDK we already have some testing utilities (admittedly yet not as powerful as you've described them).