REPL driven development with GX
Complex system configurations are prone to errors. GX was developed to support REPL driven configuration with following workflow:
- Fire-up an application REPL
- Create/update components
- Create/update config file(s) or just define a config in source code
- Load and register a system(s)
- Try to launch a system(s) by sending a startup signal
- Examine failures (if any)
- Send a stop signal to clear started resources such as HTTP server or a database pool
- Go to step 2
- Repeat
Failure examination
GX's system
namespace has two main functions to get failures:
(gx.system/failures <system-name>)
- returns a list of failures as a maps(gx.system/failures-humanized <system-name>)
- returns a list of human readable stringified failures