Why Dumb Modules Break and Smart Modules Don't
What is the difference between a dumb module and a smart module?
A dumb module returns raw fields and leaves every consumer to decide what the data means. A smart module performs an operation and returns an outcome. A dumb users module hands back a first name, a last name, and an email, and every consumer invents its own billing label. A smart users module accepts a request to generate a billing label and returns the finished label. The name composition stays inside the module.
Why do dumb modules force interface changes?
Every new use case becomes a new field request and a new meeting between teams. When shipping labels later need a phone number, a smart interface stays put because the consumer already asked for a label, not for fields. The fix happens inside the provider. Expanding a dumb interface so the next mistake is cheaper dissolves the boundary one field at a time.
Related reading
Get notified when new content drops