Fork me on GitHub
#off-topic
<
2023-03-02
>
Andrew Lai16:03:58

I’d like to improve my ability to design web APIs and design sane persistence models that support them. Since the Clojure community seems very thoughtful, I thought I’d ask here. What books/articles do you recommend that contain production-realistic examples of APIs and the persistence layer that supports them? Have you found any that explicitly walk through the trade offs of different design decisions?

delaguardo17:03:40

https://dataintensive.net/ this one is great

💯 6
🙌 4
👀 2
Rupert (All Street)20:03:53

There's some good blogs posts on https://martinfowler.com/architecture/. For example • https://martinfowler.com/eaaDev/EventSourcing.html Bit on a B2B Java enterprise focus - but still useful background.

👀 2
adi03:03:12

I quite like APIgee's little ebook on web API design: https://cloud.google.com/files/apigee/apigee-web-api-design-the-missing-link-ebook.pdf It focuses on the Web API bits, and one will have to infer the data/table design parts of the persistence side of the equation.

👍 2
👀 2
❤️ 2
Andrew Lai15:03:33

Thank you for the resources I scanned them quickly and they all seem useful! I’ll take some time and read them in more depth. As a follow-on question: Have you ever come across a repository of case-studies that have very explicit blueprints of web service designs? I’d love to add that to my reading list as well

Rupert (All Street)15:03:45

There’s a few key/popular designs for web services: • Static file website • Monolith Server (backend rendered HTML UI) -> Database • Client side SPA -> Monolith Server backend -> Database • Client side SPA -> Microservices -> Microservices -> Database • Client side SPA -> Micrsoservices -> Event Bus -> Microservices -> Database There’re others out there but many are just remixing the above. I think real life case studies are only useful to a point, because the actual architecture of a project often ends up growing organically over multiple years and may be a compromise that’s not based on a cohesive set of principles.