For FastAPI and Django developers
Give your backend a domain layer.
The app started clean. Then the business logic spread across services, utilities, and route handlers, and now nobody can find where a rule lives. Protean gives you a domain layer that keeps the rules in one place and grows without a rewrite.
Rules in one place
Business rules live on the aggregate as invariants, checked on every change, instead of spread across service functions and route handlers where they drift out of sync.
It works with FastAPI, not against it
Protean owns the domain and its persistence; FastAPI still owns the HTTP. You expose your domain over FastAPI and keep the parts of your stack you already like.
Start small, grow later
Begin with plain models, repositories, and services. Add CQRS or event sourcing for the one aggregate that needs it, and leave the rest of the app exactly as it is.