  Microservices are increasingly used in modern applications, leading to a
growing need for effective service composition solutions. However, we argue
that traditional API-centric composition mechanisms (e.g., RPC, REST, and
Pub/Sub) hamper the modularity of microservices. These mechanisms introduce
rigid code-level coupling, scatter composition logic, and hinder visibility
into cross-service data exchanges. Ultimately, these limitations complicate the
maintenance and evolution of microservice-based applications. In response, we
propose a rethinking of service composition and present Knactor, a new
data-centric composition framework to restore the modularity that microservices
were intended to offer. Knactor decouples service composition from service
development, allowing composition to be implemented as explicit data exchanges
among multiple services. Our initial case study suggests that Knactor
simplifies service composition and creates new opportunities for optimizations.
