Thanks Marc. The more I dig into Breeze, it seems to do a lot of the stuff I am trying to accomplish. The reason I started the framework was to provide a reusable angular module to quickly interact with SharePoint data when building an app.

The main reason I wanted to gain your insight is to see what guidance you may be able to offer to make the code as reusable as possible, like you did with SPServices. Things like method chaining, error handling, etc.

You're probably best off jumping on the train with Andrew, as he's been working with the Breeze folks to make everything work well with SharePoint.

My biggest recommendation about building anything client side with SharePoint is to try to think like a Web developer first and a SharePoint developer second. By that, I mean that the patterns that are considered "best practice" on the client side
have usually been solved outside the SharePoint realm.

With SPServices, I was lucky in a sense that there wasn't anything already there from Microsoft for patterns. It was the SharePoint 2007 timeframe, so CSOM didn't exist yet.

I looked at other jQuery libraries and plugins that had nothing to do with SharePoint to determine the best way to build SPServices. I'd change a few things if I could, but generally I built something that makes sense to Web developers. This means that to many
people, SPServices feels easier to use than CSOM, which was written with the .NET developer in mind. In a sense, my own ignorance of .NET development served me well.