Service API Patterns, Protocols, Coupling Types, Metrics > Service API Design Patterns > Service API Denormalization
Service API Denormalization
How can a service API facilitate consumer programs with differing data exchange requirements?
Because services can be utilized within a variety of compositions, it is difficult to express each capability in such a way that is suited for each possible consumer program. Services with strictly normalized APIs can impose unnecessary functional and performance demands on some consumer programs.
With the application of the Service API Denormalization pattern, service APIs can include a measured extent of denormalization, allowing multiple capabilities to redundantly express core functions in different ways for different types of consumer programs. This flexibility allows for increased API design options, including incorporation of the denormalized functionality. In other words, the processing of one service capability does not need to be limited to one capability. Capabilities with redundant functionality offered at different levels of granularity can be provided to support multiple consumer and composition requirements.
Equipped with additional (albeit redundant) capabilities, the Invoice service is able to better accommodate the individual requirements of the three consumers.