we deferred the specific running off to Drupal’s waiting line program. That perfectly avoided battle conditions around opening nodes during node salvage and stored the consumer interface quick and responsive.
There is one other needs: ever since the inbound information had been usually partial we wanted to furthermore import data from RottenTomatoes.com. Regarding we created a-two covering system: you’re a general PHP package with the Guzzle collection that expressed Rotten Tomatoes material as PHP things, even though the other next bridges that program generate Drupal nodes filled from Rotten Tomatoes facts. We then harmonized Rotten Tomatoes films and analysis using client’s resource information and let editors to choose to use facts from Rotten Tomatoes in support of their particular where appropriate. That information got joined in through the indexing process and, so when information is in Elasticsearch it does not matter where they originated from. We furthermore revealed Critic Evaluations to Elasticsearch aswell with the intention that client software could discover feedback of motion pictures and individual scores before you buy.
The Silex app doesn’t have to do much. For all the cable format we picked the Hypertext Application vocabulary, or HAL. HAL is actually an easy to use JSON-based hypermedia style employed by Drupal 8, Zend Appagility, and others, and is an IETF draft specs. Additionally has actually a rather sturdy PHP collection readily available that individuals could make use of. Since Elasticsearch already shop and returns JSON it had been trivial to map things from Elasticsearch into HAL. The heavy-lifting got simply in drawing and attaching the appropriate hypermedia backlinks and embedded standards. Keyword as well as other look queries had been merely passed away to Elasticsearch together with results familiar with stream the best files.
Ultimately, we wrapped the HAL item up in Symfony’s feedback item, ready all of our HTTP caching parameters and ETags, and delivered the message coming.
A large benefit of the split-architecture is the fact that spinning up an innovative new Silex incidences try unimportant. There is no significant setup beyond distinguishing the Elasticsearch machine to use, and a lot of rule try yanked down via Composer. That implies spinning up numerous cases of the API servers for redundancy, high-availability, or overall performance was without any operate. We didn’t should stress, however; the API try read-only, thus with proper use of HTTP headers and a simple Varnish host before it the API was surprisingly snappy.
For Ooyala and its consumers, Drupal was actually great for managing contents, not for offering a web site API. Thank goodness, Palantir’s familiarity with the upcoming Drupal 8 production and its own dependence on Symfony pipeline why don’t we combine Drupal with Silex – in fact it is perfect for serving a Web API but not all those things hot for dealing with and curating content. Finally, Palantir find the proper software for the task, therefore the job benefited out of this significantly.
Ooyala now has a strong and dependable API definitely able to offer customer software we never ever also touched our selves; Ooyala’s customers become what they need; end users bring an easy and receptive online services running their particular media programs. Additionally, Palantir met with the opportunity to have our very own fingers dirty with another person in the Symfony family members – an investment that repay long-term with Drupal 8 in addition to developing popularity of Symfony inside the PHP ecosystem.
An excellent option for Ooyala; great for Palantir; just the thing for the city.
Image by Todd Lappin “Above Suburbia” under CC BY-NC 2.0, changed with greeen overlay in addition to extension of arrows.