Development kata to provide a reliable way of operating a service.
-
You have exact 2.5 hours of time - no minute longer.
If you reach this time limit stop your work immediately. It is one part of the kata to respect this time limit. 🙂
-
There are no restrictions on how to use the provided time. If you want to code the entire time, take a break or a cigarette; it’s up to you.
-
This is a real world situation. You are allowed to consult the Internet, use every library you want, call a friend ...
-
It is fully up to you how you operate this one. If you choose an AWS EC2 instance, a Kubernetes cluster, your local machine, ...; you choose download the binary directly, build your own docker build pipeline, ...; everything could make sense.
-
Keep the following priorities in mind while you implementing - in the mentioned order:
- Reliability
- Maintainability
- Functionality
-
The service which should be operated itself can be found in
pkg/service
.-
It is fully functioning as it is.
-
By default, it is listening to 127.0.0.1:8000. It can be overwritten using the environment variable
KATA_SERVICE_ADDRESS
. -
It is serving the following endpoints:
/
a regular endpoint which prints out a simple response text./crash
an endpoint which will let the service crash immediately.
-
It is written in Go.
-
It can be retrieved...
- ...either as the latest binary retrieved directly from our pre-packaged releases
- ...or building it yourself using (if at Go 1.19+ is installed):
# Linux/macOS $ go build -o service ./pkg/service # Windows $ go build -o sevice.exe ./pkg/service
-
- The service is handling the endpoint
/
continuously. - The service is handling the endpoint
/crash
continuously.
See LICENSE file.