friboo
friboo copied to clipboard
Database exception middleware pattern
The current setup for db commands seems tightly coupled to the HystrixBadRequestException.
This forces me to write an ignore-function that will propagate exceptions I care about and then an exception-wrapper function to process database errors. For example, if an insert fails on a table with a duplicate key error, then I propagate this by matching the message pattern, setting the HystrixBadRequestException message to something useful for me, and finally catching this exception in my wrapping function just to get the message. This requires new developers to know to use the wrap-sql-exception function.
As an alternative, friboo.system/db.clj, could implement the middleware pattern as explained in this article.
This would allow me to write wrapper functions for the exceptions as I see fit and other devs won't need to worry about remembering to wrap their sql cmds.
thanks for the proposal! would you like to take a crack at a PR showing an example?
@dazld An example with the current pattern I have to follow?
no, I think I've understood your current pain. I'd be interested in what your solution would look like.