Skip to content

Remove all walkers #3502

@apostasie

Description

@apostasie

What is the problem you're trying to solve

We do have a number of walkers abstractions around (for network, images, etc.).

They may have seemed like a good abstraction at the time, but they are more trouble than anything, because they just hide the fact that resources come and go - and by the time they call the handler, the corresponding resource may have disappeared - unless the caller does enforce locking around the walker, which defeats the purpose of a simple functional abstraction.

At this point, it feels like walkers are just over-engineering with no purpose: a pattern that does not deliver any concrete value, while making issues harder to debug.

Describe the solution you'd like

Remove walkers and replace them with simple functions returning slices.
If the consumer wants a walker, they can implement it themselves very easily.
While looking at concurrency issues again (#3501) it is clear they are part of the problem.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions