  Edge computing is a fast-growing computing paradigm where data is processed
at the local site where it is generated, close to the end-devices. This can
benefit a set of disruptive applications like autonomous driving, augmented
reality, and collaborative machine learning, which produce incredible amounts
of data that need to be shared, processed and stored at the edge to meet low
latency requirements. However, edge storage poses new challenges due to the
scarcity and heterogeneity of edge infrastructures and the diversity of edge
applications. In particular, edge applications may impose conflicting
constraints and optimizations that are hard to be reconciled on the limited,
hard-to-scale edge resources. In this vision paper we argue that a new
middleware for constrained edge resources is needed, providing a unified
storage service for diverse edge applications. We identify programmability as a
critical feature that should be leveraged to optimize the resource sharing
while delivering the specialization needed for edge applications. Following
this line, we make a case for eBPF and present the design for Griffin - a
flexible, lightweight programmable edge storage middleware powered by eBPF.
