Presentation given at Books In Browsers, October 2013, at San Francisco, CA.
The topic is the opportunity at 24symbols to build a Books-as-a-Service platform
4. A "platform" is a system that can
be programmed and therefore
customized by outside developers
and in that way, adapted to
countless needs and niches that
the platform's original developers
could not have possibly
contemplated, much less had time
to accommodate.
Marc Andreessen
@justohidalgo
5. APPLICATIONS APPLICATIONS APPLICATIONS
PLATFORM PLATFORM PLATFORM
INFRASTRUCTURE INFRASTRUCTURE INFRASTRUCTURE
IaaS PaaS SaaS
IaaS: Information as a Service
PaaS: Platform as a Service
SaaS: Software as a Service Service-managed
Developer-managed
Source: https://www.engineyard.com
21. Platform Levels
• Level 1: “Access API”
• Platform provided in the form of a web
services API
• Level 2: “Plug-in API”
• New functions can be injected, “plugged
in” to the core system and its user
interface
• Level 3: “Runtime environment”
• Apps run inside the platform itself
@justohidalgo
22. • The lingua franca for clouds
• Using canonical URLs at different levels
• Stateless calls -> quite efficient and
performant
• Ruby has some useful gems for this
• Compatible with OAuth, OAuth2
• Using it already
23. Resources
and
Operations
• Users
• Public information (public comments, highlights,
etc.)
• Public bookshelves
• Public books read
• (async) User status change
• Readings
• Book stats (page views, regions, time, ...)
• Content mining functions
• n-grams@justohidalgo
24. Resources
and
Operations• Editions
• (Async) Edition updates
• Favorites
• Readings (avg % read, #users per page, ...)
• Bookshelves it belongs to
• Categories it belongs to
• Highlights, public comments, bookmarks
• Content (where determined by
geographical/legal constraints)
• Search
• Related books (by content, by user, by
bookshelf, by reference, ...)
@justohidalgo
25. Resources
and
Operations • Bookshelves
• Per service/user
• List of/Most shared
editions
• List of/Most shared
publishers, authors, etc.
• List of/Most commented
editions, ...
• Recommendations
• (Async) Bookshelf updates
• ...
26. Resources
and
Operations • l10n
• Set/get l18n content
for service
• Billing
• Per publisher
• Per author
• Per service (carrier-
region)
• Per business model
27. Examples
• For service #1 (e.g. 24symbols.com), find the average percentage read by user 2456 of book
3156. Output in jSON
• GET api.24symbols.com/json/service/1/user/2456/edition/3156/pctg_read
• For service #2 (e.g. country X with carrier Y), find the number of users per page of book 3156.
Output in jSON
• GET api.24symbols.com/json/service/2/edition/3156/users_per_page
• For service #3, find the number of users of page 4 in book 3156. Output in jSON
• GET
api.24symbols.com/json/service/3/edition/3156/page/4/users_per_page
• Find books most read among all services. Output in jSON
• GET api.24symbols.com/json/books_most_read
• Obtain billing info for publisher X on service 4 from April to June 2013
• GET
api.24symbols.com/json/service/4/publisher/X/daterange/2013/04_2013/06/
get_billing_info
@justohidalgo
32. Next
steps
• First launches in 3-4
countries before EOY
• Partnership with
Master’s Degree in Big
Data and PaaS/IaaS
• Prototypes and
research projects
with anonymized
data from
24symbols
• Decision
33. Conclusions
• We’re building the basis of a potential
BaaS Platform
• Regardless of whether we actually build
it or not
• Does it make sense to do it?
@justohidalgo