conductor-oss / conductor-oss/conductor
Don't send certain input parameters if their value is null
- Dominant language
- Java
- Stars
- 32.2k
- Forks
- 1k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 41
Description
### The feature, motivation and pitch
I'm trying to slim down the data sent between Conductor and microservices my workflow uses. I would like to prevent Conductor from sending certain parameters that don't have a value. It currently sends them with a null value.
### Alternatives
I've considered a JavaScript or possibly even a JQ task right before that removes certain/all keys with null values. I don't like having an extra task associated with every task that needs this since it increases the size of the workflow and adds extra latency to do a relatively simple task.
### Additional context
I am specifically using HTTP Tasks, but I imagine this is beneficial for other task types as well.
The microservices have optional input parameters that come from optional output parameters of a previous microservice/task. Since they don't always exist, there are extra keys in Conductor's request with null values. While it's not a huge deal for a single parameter for an occasional request, if you get enough of these parameters, or make enough requests, the increase in unnecessary data transfer can start to incur material costs, especially with cloud ingress/egress.
Contributor guide
Research direction
Start by tracing how HTTP Tasks construct and send input parameters, then compare that path with the input handling for other task types. Confirm the intended behavior for null-valued optional parameters and define completion as requests omitting the selected null parameters without affecting non-null values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100