This is a presentation on how to support business critical applications with REST / HATEOAS web services. This presentation was given to the DC API User's Group with a focus on how APIs are being used at the US Patent Office.
4. REST / HATEOAS
• REST - Client / Server, Stateless, Cacheable,
etc..
• HATEOAS - Engine of Application State
How do we do this , really?
Collections
Patents
Users
Cases
Queries
Tags
5. Usual “Search” / Consumer Apps
• Interface - Frontend Layer (UI) is Deployed as
Static Files from CDN
• Software - Business Logic (API) is Deployed as
Stateless Services
• Database - Persistent information (Data) is any
of SQL/NoSQL/Graph/Index/*
• Systems - Different Applications (Systems) are
hosted in private/public/* clouds
12. • Dojo! Angular! Knockout! Ember! Oh My!
End Users Don’t Care - Really They Don’t.
• Dictated by a balance of Team / Customer / Reality
Developers Need to be Okay
Maintainers Need to be Happy
• Serving up the UI/API/Images Properly
Special Web Servers for JS/HTML/CSS
Special App Servers for to serve up Images
Special App Servers for APIs
Interface - What Framework?
13. • Data Update Frequency dictates
Caching/Concurrency
• Data Security dictates Authentication
• Data Relevancy dictates Linkage
• Data Need dictates Size
Software - Serving API
14. • Relational is still relevant.
It's fast. It's reliable. It's related.
• NoSQL works, choose wisely.
*** (Consistency vs. Reliability)
• Index is an index.
Don't use it as NoSQL.
(SolR/ElasticSearch)
• Some data changes, while other data
doesn't. (Transactions vs. Records)
Database - The Middle Path
15. • Criticality Influences Everything
Mission / Business / Health Critical?
• SLA / OLA
Customers have “Service Level
Agreement” Functional Groups have
“Operational Level Agreements”
• Commercial support means you can
blame people and get them to fix it.
If it breaks, you better own it, or get
someone else to fix it, and pay them.
Systems - Tying it All Together