I found that trying to stick to CRUD REST API's led to confusion when boundaries crossed ("I need to update Y with data from X. Is this operation for X or is it for Y?"). Following the "Command Query Responsibility Segregation" (CQRS) pattern used largely by GraphQL helped make this clearer. Yes, I have more endpoints, but they're specific, easy to trace and debug due to increased observability, and reduce overall complexity.
Glad you liked it! 🙌 That’s a solid example - CRUD works until it doesn’t, and then patterns like CQRS/GraphQL bring in some more clarity. I would say that it's quite a nice tradeoff: more endpoints, but much more clarity.
Good writeup.
I found that trying to stick to CRUD REST API's led to confusion when boundaries crossed ("I need to update Y with data from X. Is this operation for X or is it for Y?"). Following the "Command Query Responsibility Segregation" (CQRS) pattern used largely by GraphQL helped make this clearer. Yes, I have more endpoints, but they're specific, easy to trace and debug due to increased observability, and reduce overall complexity.
Glad you liked it! 🙌 That’s a solid example - CRUD works until it doesn’t, and then patterns like CQRS/GraphQL bring in some more clarity. I would say that it's quite a nice tradeoff: more endpoints, but much more clarity.