Activating Your Site: A Look at Activity Streams

Video in TIB AV-Portal: Activating Your Site: A Look at Activity Streams

Formal Metadata

Activating Your Site: A Look at Activity Streams
Title of Series
Part Number
Number of Parts
CC Attribution - ShareAlike 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
We will walk you through how to implement activity streams for your website in a generic fashion by leveraging the open specification. The two tools we will show are django-activity-streams which lets you interrelate the objects in your Django site using a supported DB and the activitystreams project which provides a ReST service based on the spec, with Neo4j graph for storage.
Computer animation Streaming media Grothendieck topology Form (programming)
Trajectory Latent heat Service (economics) Gender String (computer science) Website Streaming media Grothendieck topology Exergie
Point (geometry) Facebook Group action Twitter
Trail Mobile app Term (mathematics) Network topology Multiplication sign Feedback Combinational logic Content (media) Analytic set Software testing Grothendieck topology Power (physics)
Film editing Streaming media
Implementation Relational database Multiplication sign Electronic mailing list Data storage device Bit Streaming media Grothendieck topology Facebook Hash function Term (mathematics) Different (Kate Ryan album) Right angle Data structure Adjacency matrix
Point (geometry) Complex (psychology) Dependent and independent variables Divisor Multiplication sign Instance (computer science) Streaming media Mass Limit (category theory) Scalability Neuroinformatik Facebook Sparse matrix Query language Quicksort Ranking Cycle (graph theory) Reverse engineering
Implementation Latent heat Virtual machine Bit Streaming media Data structure Family
Group action Implementation Multiplication sign Weight Projective plane Electronic mailing list 1 (number) Bit Mereology Perspective (visual) Timestamp Demoscene Grothendieck topology Digital photography Latent heat Voting Blog Object (grammar) Quicksort Descriptive statistics Social class
Trail Open source Key (cryptography) Gender Multiplication sign Projective plane Source code Design by contract Database Streaming media Grothendieck topology Latent heat Repository (publishing) Object (grammar)
Area Point (geometry) Group action Key (cryptography) Multiplication sign Gender Feedback Online help Database Timestamp Demoscene Grothendieck topology Product (business) Uniform resource locator Computer animation Universe (mathematics) Self-organization Electronic visual display Game theory Object (grammar) Endliche Modelltheorie Sinc function
Functional (mathematics) Query language Electronic mailing list Set (mathematics) Parameter (computer programming) Object (grammar) Theory Reverse engineering
Context awareness Group action Content (media) 1 (number) Perturbation theory Streaming media Twitter Facebook Type theory Personal digital assistant Phase transition Object (grammar) Endliche Modelltheorie
Trail Group action Graph (mathematics) Graph (mathematics) Numbering scheme Streaming media Parameter (computer programming) Instance (computer science) Number Power (physics) Type theory Query language Right angle Game theory Object (grammar) Recursion
Context awareness Functional (mathematics) Group action Enthalpy Computer file View (database) Virtual machine Streaming media Parameter (computer programming) Grothendieck topology Template (C++) String (computer science) Electronic visual display File format Projective plane Feedback Data storage device Content (media) Instance (computer science) System call Type theory Voting Volumenvisualisierung Object (grammar) Game theory
Key (cryptography) Information Interactive television Content (media) Database Bit Rectangle Entire function Number Revision control Type theory Arithmetic mean Word Query language Object (grammar) Quicksort
Module (mathematics) Implementation Game controller Service (economics) Digital electronics Open source Projective plane Horizon Data storage device Real-time operating system Bit Streaming media Limit (category theory) Flow separation Grothendieck topology Front and back ends Product (business) Type theory Right angle Endliche Modelltheorie Quicksort Physical system
Axiom of choice Type theory Graph (mathematics) Program slicing Database Bit Reverse engineering
Logical constant Complex (psychology) Graph (mathematics) Java applet Graph (mathematics) Electronic mailing list Database Bit Insertion loss Number Graph theory Category of being Subject indexing Pointer (computer programming) Lecture/Conference Term (mathematics) Software framework Data structure Resultant
Graph (mathematics) Data storage device Fitness function Streaming media Cartesian coordinate system Mereology Timestamp Entire function Radical (chemistry) Type theory Category of being Digital photography Root Network socket Endliche Modelltheorie Object (grammar)
Axiom of choice Computer file Java applet Set (mathematics) Real-time operating system Insertion loss Streaming media Mereology Product (business) Neuroinformatik Different (Kate Ryan album) Graph (mathematics) Queue (abstract data type) Software framework Physical system Weight Horizon Variance Bit Type theory Message passing Process (computing) Network topology Telecommunication Calculation Cycle (graph theory)
Point (geometry) Multiplication Direction (geometry) Content (media) Bit Streaming media Parameter (computer programming) Twitter Degree (graph theory) Type theory Software framework Right angle Endliche Modelltheorie Object (grammar)
Point (geometry) Enthalpy Graph (mathematics) Divisor Direction (geometry) View (database) Graph (mathematics) Counting Database Streaming media Instance (computer science) Type theory Object (grammar) Office suite Musical ensemble Resultant
Group action Game controller Graph (mathematics) Personal digital assistant Electronic mailing list Object (grammar) Proxy server Resultant Reverse engineering
Module (mathematics) Game controller Group action Standard deviation Graph (mathematics) Service (economics) Debugger Streaming media Mereology Entire function Neuroinformatik Front and back ends Web 2.0 Digital photography Mathematics Process (computing) Endliche Modelltheorie
Context awareness Enthalpy Algorithmic information theory Mapping Counting Streaming media Cartesian coordinate system Attribute grammar Web application Type theory Digital photography Blog Touch typing Object (grammar) Endliche Modelltheorie
Group action Dependent and independent variables Mapping Logic Multiplication sign Object (grammar) Cycle (graph theory) Cartesian coordinate system Attribute grammar Template (C++)
Web page Type theory Multiplication Service (economics) State of matter Natural number Plotter Moment (mathematics) Counting Object (grammar) Mereology Computer worm
Group action Open source Link (knot theory) Personal digital assistant String (computer science) Software developer Video game Streaming media Data structure Cartesian coordinate system Oracle
Point (geometry) Module (mathematics) Web page Dependent and independent variables Multiplication Service (economics) Graph (mathematics) Connectivity (graph theory) Data storage device ACID Horizon Bit Streaming media Cartesian coordinate system Symbol table Web 2.0 Medical imaging Web application Digital photography Mechanism design Telecommunication Endliche Modelltheorie Computer worm
Point (geometry) Service (economics) Content (media) 1 (number) Stress (mechanics) Streaming media Cartesian coordinate system System call Demoscene Twitter Revision control Digital photography Mathematics Word Ring (mathematics) Logic Network topology Electronic visual display Endliche Modelltheorie Resultant
User profile String (computer science) Chain Quicksort Cartesian coordinate system
Computer animation
and mn from some form of days ago now and so without further ado let's get talking about active featuring so talked this active in your site a look and activity streams problems presented by us and will briefly what they are and how you can implement them and why you should care about going on your site also just briefly of unjust and then
on we are all our work at National Geographic which uses a lotta Django on our sites are and will doing useful work on so again you see gender
our talk about trajectories shows what they or why you should care about them on your site some of the engineering concerns around implementing them on and they were in the talk throughout the open specification regarding activity streams and then 2 solutions 1 expressly in Django any as a service that work for any website so what i 2 strings so that
actually everywhere also get of Facebook LinkedIn and Twitter etc. and the problem of them 1 of these at least once a day but they essentially all displaying of actions that people take on your site and and they also have a way that people can somehow like socially went themselves to other people were also making activities amplifying the amount that the Si in the street so why do all this stuff
with the point Oblast and actually
turns out that it's really been increasing engagement your site so you something as simple as putting the like button on your site over track traffic immensely because essentially people like clicking on things I would focus on Maggio and just very basic about community a lot of like user feedback a thing like that people just like looking things to say yes they prove this content or whatever but then also so that's the 1st half of the and the publisher your activities to cite the other half is being able to and suture friends are doing and what those 2 in combination yet so probably powerful positive feedback loop that will drive lots and lots more content engagement on your site that's really great thing do I'm about terms
engineering we get a lot of data out of her way data and with that do you often start occluding tons analytics you drive recommendations like so what netflix a tree related content we have social Glass apps apps having to trending can drive a b testing and times more but there are assumed
by engineered considerations that have to be taken into account implementing this and the benzene about and that the more but so these
are just some of the problems that are presented with activity streams that there are no great solutions this it's not a simple clear cut answer but it's all about you know when the benefits of each 1 of them and then dive into a little on into 1 of these into each 1 of these will so the 1st problem
is too many papers essentially are so many implementations of activity streams out there and that's kind of evil we don't really get the benefit of crossing implementation would be really great if I could do an activity on Facebook or somewhere else and then get that same thing in National Geographic or another site and it causes duplication of work and there's no common semantic structuring so it's kind of hard to implement these things and come up with the terms I am on every time I went up a little bit about the solution to that of that so on the 2nd
problem that we might face is what we actually store and whatever data structures and in what schema is this could be a relational database and on relational database with the data structure there's different things in terms of efficiency that could come into this are we doing an adjacency list the adjacency matrix of a doubly linked list something else a key-value store just the hash and are you have more rights or reads so if you're a social media company you might show the news feed a lot and then you have to have a lot of reads if you're a kind a company like National Geographic you know there's mostly content and other issues and you see that much and they have a lot more rights and then do I store the activities in the same place I store the actual stream where was precomputed or something that such that the little 2nd and so on another problem
versus sparsity here's the hate you're always and have your celebrities so those are people who have a lot of followers were due time of activities and the reverse to that which is sparsity in forever alone I only have 1 friend or only 10 1 activity and in each of these things present different problems so for instance for the celebrity do you start to enforce limits at some point that'd be too much to compute on Facebook if remember correctly has a limit for 5 thousand friends and you saw that way that data limit is a hard limit or you do some sort of you UX solution where you hide the follow button at some point and then the other way it you know the problem is what I show a person that has 1 friend with person that's only done 1 activity minor children stream without 1 thing I'm of the stream that has only that 1 friends activities
scalability obviously an important factor here you know what I might where my dealing with my dealing with a mass amount of activities are just a few religious computation my offloading into somewhere else my doing that inside the request response cycle or doing something else with it and how to handle complex queries like friends of friends or followers or the recommendations and then I have time versus precomputed when you computation is important factor are you pushing on real-time and if so how the things take precedence and are you doing some sort of half and half of where you pre-computing some stuff and then computing on flight for other things and what are you actually sending a just calculating the ranking of things are you doing the entire thing including the HTML and setting that off will you really going to have to compute so I'd like to invite Justin back
on and we're talk a little bit about the solutions to these things and some implementations that we came up with so there is a solution for some of these problems and it turns out there's an open specification call the Django the activity Streams specification at that aims to solve at least you know the burden mentations by solidifying everybody on 1 of semantic structure and then the data and how it's stored and
so this is actually been around for a while I have all these companies that you are a in some fashion other are we implement this National Geographic and the other solution to show you today also implemented and it supports a adamant Jason structures out of the box and and in the human family machine possible way and quick disclaimer nobody appears officially involved the specification Rhodopseudomonas were showing our on a shared experience with you about this so
the US by books a little bit like this so there 3 3 big entities and the actor which is required under lets the user and the site so they were taking a particular action on the fruit flavors which is of whatever actually happens like common post and perspective finds a whole list of officially supported votes but precise Moses at the scene is implemented they take those and then the ones aren't this sort of wrong with and customize their own there's an official channel go back and proposed probes the mark there to the draft specification drank due on the website time you also have an action object which is the primary out of the activity well created essentially whether it's a photo album or comment on a blog post and last and is the project as well as the actions take place you know it could be in like like the album or the blog post will where the action is going and and then there's a little meta-information white while at the timestamp is a descriptive title and summary
and so this is what the Jason on implementation looks like a real quickly quick example I exceeded the actor object and part that have their own i Jason object weight and time and we sort of status for white Jason is the 1st class citizen of Ursula mutations so on
the talk right right now about gender streams which is they are an open source project that I wrote and it's been used in several of sites
so it uses the specification of a contract anymore object and you Django project but it runs on any supported Django database but it keeps track of everything using generic foreign keys but it will also provides a way for you to wonder the streams on your site using complete tags for of feeds on everything generator request time and I leave the catching up to you and you read along with the source code of my get a repository will also with the docks so when I'm not looking
at National Geographic and sees you acknowledge which is beginning company that runs the humans vs. understand the feces actually area of organize McTaggart's played all universities and other locations all over the world and we do like thousands of players doing hundreds and hundreds action today and that we need a way to sort of get that feedback and show people they're streams on and so this is each resource the Django site the we set up to help modeling that game on and you can see a support I can't use just the world up crazy face the actor that's the world of the original sampling the object in the at the down in the product and then the timestamp is isn't the time since Voltaire all display right there I'm so behind the scenes it uses 2 models to
accomplish everything the main action model has know point he's named after pelican action object back point to any object in your gender database doesn't have to be used that also has that descriptive meta-information us talking as well of the 2nd model as follow that has a foreign key to your user that's tango aren't user would also supports custom user as up to you and then a generic point he point any other entity that you'd like to follow doesn't have to be users to be anything else and maintains the relationship in the database so can I actions pretty
simple you just work the uh signal and sent along with the arguments so crazy faces the actor 1st foremost and then all the arguments Shannon as few arguments so this is selected the originals on the for the target which is so
trial found in unveiling is similar to theory and also to this just the following unfollow functions that take a user 1st and then into the 2nd and you the greater destroy that follow object and there's also followers and following which would return the query set of users that file that given entered the world the other 1 does the reverse lookup and gives you a list of entities that that users follow the cost
of streams that good is is that we can show it so comes the few built in streams and you should be the most important 1 that takes the user finds that use their followers and then gives you actions that those followers of . that's like your main dashboard get hot or Facebook or Twitter as far as most important 1 in the summer the ones that are actor troggin action object that just do a some look based on whatever context that back in object this is in their actions so she phase will show me all the actions were crazy case was the act of Madison's another interesting 1 it will show you any and all content or any and all actions that involve particular content types of social me anything that is happening with any user models and so if I
would rather interesting on the user's string query essentially you're given the uh the user object goes and find your followers er the solid the peak the continent you follow and then I 1st looks up the actions that were involved those objects are and it can also filter down by relationship but a fair use from this returns everything where vowels involved and but you can customize as well I so those are the 2 so far but there's
also a custom streams which are easily implemented answer basically of this first one right here up actions takes the game incidents finds out the number plate these that are in this game and returns a query saying I've shown all the actions where pose the scheme with the actor and those that object the content type on the stream decoded puts little power were but it will you can refer to a recursive arguments for keyword argument Voltaire on it afterward when closer but then the 2nd example here is the player actions by slow but simply does the same thing that the first one was doing only it takes a slowness of an instance how we get back to that later about why that's useful for the graph
that looks pretty similar to the 1st example it in the game you find those and then you will look up to find out what those players made this that actions when they were the actor but so it's a little it's it's pretty straightforward that's the generic for his work from the play objects to the actions and keep track of the relationship and so the 1st way to
put this on your site is using template text and the activity stream template is the most helpful because then essentially takes the 1st argument is the name of the stream interested in but the actors strip and then on any arbitrary objects in passing through that this returns a string object in context which again iterate over in this way our you want this to help will be open call this action which is just the include tag I would that lenders specific template that you can override the project opportune also displays however you want your site and but also work for constant stream so give it the name your custom string S in a given instance in your vote a 2nd so function that the templates give you is ability to create follow up to this guy essentially is the only thing that's a for not on this person will give you went too file and you have found this person will give you want on fall so that the problem that you see on get help or any other social media sites the 2nd way to get information out
of the is through feeds on so the user fees for some forced on it and the supporting the animal Jason uh for the user views on the authenticated in your that your well war turned out of the use of the the machine readable format object the it doesn't look up for specific object by content type and object ID and then returns you a string of actions where they participated in that in any any relationship the just like I showed you just because of everything based on content I of interestingly you can also add a custom Jason feels like this like I showed you with the games love and it's the 2nd custom 1 before so you can actually pass your outlandish directly in your streams and render things out through best custom Jason feedback way so in implementing this I went to a
couple of days considerations that important to note so long if you write this mean and naively and like the Standard Template I use actually get 1 query focusing on actions and as you iterating you do hit the database for every at every target interaction object and this gets incredibly complex after a while so luckily inversions a Django for new work you have referred related which essentially combined will all and just has big O C where C is the number of content types overall so it drastically reduces the number of database queries makes the queries a bit beef year and then gender so that information back to the database and then shoppers everything together in Python to give you your final words that so generated streams use under the hood you don't have to worry about this but you can extend it if you like a further on and has a sense would learn generic flunkey's there are some limitations and like the aggregation and annotation EPI Django will not work for the john for keys and found the answer like this guy rectangular that tries to find account of actors whose health is greater than the 5 just will not work so this leads on versions without a lot of interesting things like a or what the content of like the most popular because of the more interesting queries you like to get a handle on the sort of falls short if to do a lot of ugly SQL get things the way you want to do I so this is from a better way to
do it and we've been using a National Geographic of of work on the wise and service on entire suspected banned you with more so good can come so a little bit of background
about the horizon service and like just said if you're building an which just means an activity stream this project is Austin for that but we have a logical system we don't really have control over the models that exist within the different sites that we have and so we needed some solution I was able to deal with this type of stuff as a service and we have a great product honor that basically told us there are 3 different implementations of the right now build me 1 and so we built the service and it follows the intuition spec or tries to under some limitations with the solutions that we chose it does a half and half sort of real-time versus precompute next and what's important to note is that if you want you sister models must have an API we'll talk more about why and in that that is required and then there's a clear separation between front-end and back-end modules that come together with this and this again is open source so
will electrical circuit for you about the horizon ecosystem and the diver little bit into those and we'll talk about them 1st storage considerations
of 1st thing we look at it was we restore this and and a graph database really is perfectly suited for these types of things and and for making interesting optimized for large reversals it's really good at storing the relationships and we can look at individual slices based on different things which I'll talk a little bit about the entrance of choices so you
Faugeras our and prior that we chose to use for this the database we looked at others but eventually chose the for j it's based
on TinkerPop which is a Java framework for property graphs Titan which is another graph database also use the same thing property graph is essentially a graph database that allows me to have properties on both nodes and edges and underneath the hood it implements a doubly linked list as its data structure for relationships and nodes are just pointers to the 1st relationship and that's how they traverse I'm in terms of
complexity for indexing and search for a little bit costly because it's a doubly linked list that has a big o of n where n is the number of edges but and then for 4 insert and delete that's constant speed but me of rejection is seen on top of things so when you started to start talking about indexing and searching gets a much better result but what we actually
store so we don't want story entire model we can't actually story terminal I situation is 1 where there's multiple models we can have a photo and once I describe completely different from a photo in another site and in trying to solve that and then using the data the best practices for something like new for j we decide on 5 basic properties for nodes those our API and if you member I talked about you need an API root for your models and any IT your application ID a type of AP label model name so that's say tube underscore video created an updated timestamps and then that's that could be an actor and object target or anything else in your graph that's only stuff that's only thing that we store 4 edges so that different from new for J has a native type so that could be followed favored but like so on and then a created an updated timestamp we also
use Radice from newsreaders for socket sessions caching and then some stream data is really good for that stuff and um there's not much to say except that it's an excellent fit and back to this part of the talk a
little bit about the precompute cycle so I we said that you have to make a choice between real-time precompute we said that we just have to have we use a catching
storm and enough you're you're familiar with it so really great product it's like do but for real-time message processing it's not a dependency the recommendation and the way that storm works is it has these typologies sexually topologies and worker storm in general is a processing framework that is distributed in really good at doing these types of things for processing messages it has topologies that describe a set of processes that are called bolts and you could have multiple topologies you uploaded apology by just putting a jar file into the storm cluster and then runs those things it internally can run not only Java Python John Stuart C sharp what everyone and communication to it is done by a message queue and use Kafka or rather in q for some certain things so topology is a really good because we have a problem to solve which is but 1 part of our company might want to have a larger weights on variance in another part of the company might 1 have larger weights on articles and in order to do that type of course calculation computation we can create many different Storm topology so basic define different processes to eventually get us the data that we want for each 1 of these streams and all that is dumped eventually into writers and thinkers of this loss it again this is not a dependency the recommendation you could do everything on the fly for the further rise in the system so horizon itself is built
on node and sales which is a VC framework and a minute dive little bit into the
API for so it supports multiple content models and with the use of the simple in which is the label model and in a less access to choose from different viewpoints you could look at things from the active viewpoint from an object point that make a little bit more sense a 2nd and then target and so on here's an example of you so
represent 1 of the API and if you go to object you to video 1 and favorited essentially you're gonna look at every activity that is of the type favored that has been done on you tube video 1 inward we're looking at that from the direction of the object so I'm asking what has been done to me the object and on the right you can see their really folds back you see the little bit parameter there that's actually an aftereffect of new for j of which were working to overcome by absolute trends of falls to some degree and here's some more
examples if I did factor often 1 favored UQ video and then if you go to that of you you find something funny and that return a specific activity as described by the spectra and if you went to the object you to video with ID favored officer I would see all the activities onto an object by a specific type of music that's useful for counts for instance
thing to remember here is that direction actually matters when dealing with graph databases so if I look at things from the point view of an actor it's not the same as looking at it from the point of view of an object and asking different questions and actually within the graph databases that start within the graph database edges have direction but so if I'm asking I'm an object what have I done I'll probably get nothing because most You Tube videos can like things but if I'm an actor and I'm looking at from that direction then I'll be able to get some results posting really easy API V 1
activity basically payload looks more or less like the data that we store on and then we do manipulations on top of that further precompute stuff and you can even do complex
stuff so we a controller that so called Prussia intruders also reverse proxy controller this facilitates stuff like follows so in in this graph example you have a proxy that could be you and let's say I've proxy group that I use followed and whoever that the actors or objects or whatever when they get back is a list of all the activities of those actors have done on objects on the return called look pretty much the same the return result look pretty much the same as what I showed you earlier so then this case i'd have multiple actors doing activity the so what are the problems that we run
into something like this for so we have no control over external data and if before you have photo changed its title around so you really need to live in an ecosystem that allows you to get that data back and to inform you of such changes the 2nd problem we have is a graph databases don't really have agreed ecosystems yet so adapters another great there's no real graph or and I know because I wrote some of those adapters but since then from versus back and computation and I heard that I missed a great talk this morning about where do the competition and that's a real consideration due to the entire stream processing on back end you send up to the front and to do that do some computation and validating actually to the next part of which is far higher
front of worked on every part of this ecosystem but he's gonna talk about the front end modules and how they relate to this because yeah yeah and so what Florida client-side models of so we see this streams snippets and that's the name we call them and they're just standard web front and technologies to nodes telescript CSS come and they allow you to communicate with the service by sending actions by consuming action so was that so the 1st thing we talked about is this new
it's like a like the very configurable like on this snippet is responsible for representing a specific that an actor can take on a specific object so it's also responsible for displaying some about the activity of a specific object like counts on so here's some representations of and is also an open-source parsers please check it out and this entire thing you don't just phonologist on so I said well
application instead of an arson picture of me move over some the other users to tell me hey if I like this touch them you know the work that so on my blog on a web application I can just add these days and this has to be smallest here and you can see the diver's priest using Stenalees assumed all the attributes there's an object type and there's again the AP label underscore modeling the AIT what's the application ID so were over whichever application has the storing this photo and then the object in the end point on welcome back to that it's really important on and then the day of and as you can see the snippet is kind of a map to an object and and the this maybe in the stream have this concept of context
on this innovate sensor represent actions can take an object yes sociable who's taking the action a lot of times it's going to be a user and an active some sometimes the most likely will be easier but it could be really anything and we mentioned was highly configurable so indeed
over attribute actually maps to the template and seeing can really easily customized held over looks differently and have been in the business logic that encapsulates on it's really easy that trigger over at the very bottom so your application you knew verb paper you know whatever that means the application you can very easily added actually make sure you have a template that's associated with it and then you will get the customer so let's look at come how this all works and how it comes with like the Eucharist response cycle come
so let's say I have some if it has countably Euclid's this in the post requests to the same endpoint and this is basically the payload again it's pretty is except we try be consistent so it's KDE PI type at the moment the arriving service returns OK this snippet is updated with the new state part tend the count is all on so this
should you 1 example of 1 signal region it's like they can there be multiple snippets on the page can multiple snippets be . the same object yes they can we because all of these issues because of the variety in natural geographic the you know we can design although all the fun and web pages so we then have a where where these can all talk really easily to each other and communicate so yes 1 object can be represented by multiple said that some of the stiffest represent what plot of the same page and they all work so that's pretty much the person and that when I can talk
about the string so the snippet was actions you can take the stream is consuming it's the news it's it's a highly configurable news the it into splays it displays activities on based on actor come on like this if there was door that of this is built we just go back and again it's open source so as so you with the stream of
link and when viewing this dream of Lucas the servant is 1 of the developers and so geographic and you can see how the structure of the string Lucas servant the actor favored in the work the oracle digging Utah's dinosaurs and I and using the target in that case on some of the application when we a lot of things in life that show why would I think he was in a good mood on so they go back to the
example of this unique all this my web so it's a some users has favored a photo and now this stream is showing you what industry was configured so all this particular users activities he favored a photo and the most popular activity which generates and some child so it's kinda response
classical it's really is a lot of a little bit more complicated than just Köstinger deleting center the week before so the model is actually uses the websocket connection with the right answer on the module because of this we only have like a bi-directional communication so the model cascade give me all my activities or give me all the activities people I follow a we to get back to the payload from the horizons now this is where the API and point really come into play again we don't store any graph sewing images restoring model the directly to soaring some the PAM Point and we will call out to the fact that there is a module will call out to all these extra external applications that your models are on an acid and he describes so it's really important now to see like why you need easy and this is like this the snippets in this model can come live in multiple web applications and we really need to know anything else this communicated this mechanism and when we get this response back on we cast the catch all the symbols for so you want to be constant making even if you reload the page models on the other hand a common theme Eagle these calls out to the sexual services we can show so this actually
brings up a ton of problems in interesting considerations that we has stress if you want or using any of these new solvers from 1 of them is that the API obvious easily chatting on the models which are you need your supporting ecosystem there's more what obligations so be aware that it be making lots of calls out money making some cost calls out so just be aware of detecting that out on we can because of relying on all these external applications have to deal with failure would you do in the service of the of application fails the display on the stream you can do you do you display some cash result in William important considerations think about and misunderstanding over a few more yeah so bad in the scene of this service is not really aware of changes on content of some photographs of the years ambiguous title be changed how do you reflect that back to the service in a furious displaying on the stream you know what you do how do you how do you change up and you had you change was being displayed at you invalid and every simple example even make sorting and ranking let's say I want with the most recent popular activities on a stream and someone generates a new activity words that come up and you you immediately with topic we you have using other than it's like a honorable into the most popular ones that you can navigate this strong and then again do you want to do that you invalid catch on yeah basically the point is there's a lot of business logic between this for the service and these fine models and so you need to do is determine what kind of update models and things you care about the can display them to the user the good thing is that we built the service in a way where the back and the service itself and the client-side modular reconfigurable and see the of a lot of opportunity to kind of like tweet would you need on is is running y
yes it is ring what you can go check that engine beta our on and GM is the online version of the magazine where you can see all these issues going back to the 1888 sewing trees you go on to become a member answer uh clicking on and favoring activities of this is what the
string looks like this is and released at a sort of working on this with eventually this will be displayed on on the user profile that's pretty
much the agenda yeah that's pretty much the agenda
and of 1 more thing to note that
all prodigy spoken about all 4 all 4 those or open source be deaf waiting to be stationed but contributes this so long to do and we're also building up the chain as another allows candidates speak of because the some the Django applications in 2 so uh
that in a few questions and you will use walks appliances from few some and on