"One of the more interesting design challenges with go-github (and subsequently the one that results in the most questions) is the use of pointers for most all of the fields in our structs that are marshaled and passed to the GitHub API. After a fair amount of trial and error, I settled on the approach that I’m going to talk about below, and it’s something I think more API clients written in Go ought to consider."

Source: https://willnorris.com/2014/05/go-rest-api...
Posted
AuthorJohn Sheehan

"It’s hard to get any complex software system behavior correct. So far, we’ve found that these external tests give us a really nice forum for working out these kinds of issues. They also give us something to share with our customers, and a way to ask for advice from experts outside of the company."

Source: http://blog.balancedpayments.com/tdd-your-...
Posted
AuthorJohn Sheehan

"I have recently been battling with n+1 problem on the server - a Web API serving some composed data. Slow responses, thread starvation, inconsistent performance were some of the symptoms and caused me enough pain to make me completely re-design the serving layer of the API. In this post I cover the background to the problem and propose several patterns and solutions - some of which I successfully integrated in my API Layer to alleviate the problem."

Source: http://byterot.blogspot.com/2014/04/web-ap...
Posted
AuthorJohn Sheehan

"The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data."

Source: http://martinfowler.com/articles/microserv...
Posted
AuthorJohn Sheehan

"With these mission-critical services being the lifeblood of your applications, keeping a close eye on them is increasingly important. If a backend service is down it’s likely that your app is down too. If you’re getting back unexpected data, user experience suffers. Just checking for uptime isn’t enough."

Source: http://blog.pagerduty.com/2014/02/runscope...
Posted
AuthorJohn Sheehan

"At Linn we develop and maintain a variety of HTTP APIs to support the operations of the company. Over time the number of dependencies between these APIs has increased, and it became apparent that we needed a reliable way to introduce changes without breaking existing clients. In this post I describe how we used media type parameters to version our APIs."

Source: http://liddellj.com/using-media-type-param...
Posted
AuthorJohn Sheehan

"Every which way you turn there are different philosophical takes on “the right way” and lots of backwards and forwards on REST, what is RESTful, what is not and if it even matters. Let’s talk about API changes, the impact on versioning, why there are so many diverging ideas on how it should be done and ultimately, why none of the banter is as important as actually getting stuff done."

Source: http://www.troyhunt.com/2014/02/your-api-v...
Posted
AuthorJohn Sheehan