SlideShare a Scribd company logo
1 of 23
Download to read offline
Activity stream and
conversation engine
(MAX)
Víctor Fernández de Alba (@sneridagh)
Carles Bruguera (@sunbit)
MAX is a project founded by @UPCnet and @BarcelonaTech
History
• First commit on August, 2011
• Initially designed as the key feature for the
BarcelonaTech university concept of social
intranet
• The university’s social intranet concept is on the IT
roadmap since 2007 and it has been developed
with limited resources since then
Social intranet concept
Activity Stream
Activity
Comments
Likes
Favorites
Images
Files
Conversations
1to1
Group
Images
Files
Realtime using STOMP RabbitMQ plugin
Push notifications
iOS
Android
External sources aggregator
Twitter
Authentication
oAuth 2.0
Resource Owner Password Credentials flow
(https://pypi.python.org/pypi/osiris)
LDAP
and other pluggable
auth backends
Activity stream
• Stores activity from
users and
applications
• The applications
can impersonate
users to feed the
stream with useful
information
oAuth
server
API
MongoDB
Context oriented
• Subscriptions are made against contexts
• A context is something with an unique URL
• An user can have n subscriptions to contexts
• The user timeline is composed of all the activity
generated in these contexts
Conversations
• Realtime
conversations and
private messaging
• Support for
sending images
and files
oAuth
server
API
(WSGI client)
MongoDB
RabbitMQ
STOMP
Conversation queues
Infrastructure
oAuth
server
API
MongoDB RabbitMQ
Queues
push Twitter
conversations
Consumers
Frontends
MAXUI.js
iOS
Android
MAX API
88 RESTful
endpoints
> 600 tests and 96% coverage
MAX API
Pyramid powered
gevent optimized
Backends
MongoDB
RabbitMQ
General storage
Realtime conversation backend
Processing queues
Queues and consumers
• Designed for huge loads (conversations specially)
• RabbitMQ queues
• gevent consumers with WSGI API client
• Push (iOS and Android notifications)
• Twitter streaming traking consumers for contexts and
users
• Conversations
Frontends
MAXui.js
• jQuery, no framework but
using modern JS
development good
practices
• Can be instantiated
virtually in any web site
given the username and
oAuth token and MAX
server
• Stomp.js (STOMP over
websockets) powered
• Native apps
• Stream,
conversations,
subscriptions
• Support for push
notifications
Frontends
iOS & Android
Performance
4000 concurrent users
100 messages/sec
200 conversations
20 users/conversation
1 message every 2 seconds
Plone integration
What’s next?
• Follow people and activity publishing not related to
any particular context
• Sharing
• Improve documentation!!
Resources
https://upcnet.github.io/max
https://github.com/UPCnet/max
https://github.com/UPCnet/maxserver

More Related Content

Similar to MAX: Realtime messaging and activity stream engine

Empowering a cloud based Internet of thing European Project
Empowering a cloud based Internet of thing European ProjectEmpowering a cloud based Internet of thing European Project
Empowering a cloud based Internet of thing European Project
Dr.-Ing Abdur Rahim Biswas
 
A Framework for Context-aware applications for Smart Spaces. ruSmart 2011 St ...
A Framework for Context-aware applications for Smart Spaces. ruSmart 2011 St ...A Framework for Context-aware applications for Smart Spaces. ruSmart 2011 St ...
A Framework for Context-aware applications for Smart Spaces. ruSmart 2011 St ...
Natalia Díaz Rodríguez
 

Similar to MAX: Realtime messaging and activity stream engine (20)

The Social Semantic Web
The Social Semantic WebThe Social Semantic Web
The Social Semantic Web
 
Innovation for Europeana - Europeana v2.0 WP7
Innovation for Europeana - Europeana v2.0 WP7Innovation for Europeana - Europeana v2.0 WP7
Innovation for Europeana - Europeana v2.0 WP7
 
IoT Interoperability: a Hub-based Approach
IoT Interoperability: a Hub-based ApproachIoT Interoperability: a Hub-based Approach
IoT Interoperability: a Hub-based Approach
 
CitySDK Overview and Demo
CitySDK Overview and DemoCitySDK Overview and Demo
CitySDK Overview and Demo
 
Building an Open Source, Real-Time, Billion Object Spatio-Temporal Search Pla...
Building an Open Source, Real-Time, Billion Object Spatio-Temporal Search Pla...Building an Open Source, Real-Time, Billion Object Spatio-Temporal Search Pla...
Building an Open Source, Real-Time, Billion Object Spatio-Temporal Search Pla...
 
Webinar for the INSPIRE 2018 Hackathon (July session, 20/07/2018))
Webinar for the INSPIRE 2018 Hackathon (July session, 20/07/2018))Webinar for the INSPIRE 2018 Hackathon (July session, 20/07/2018))
Webinar for the INSPIRE 2018 Hackathon (July session, 20/07/2018))
 
Fast App development with SwellRT
Fast App development  with SwellRTFast App development  with SwellRT
Fast App development with SwellRT
 
ResourceSync - Overview and Real-World Use Cases for Discovery, Harvesting, a...
ResourceSync - Overview and Real-World Use Cases for Discovery, Harvesting, a...ResourceSync - Overview and Real-World Use Cases for Discovery, Harvesting, a...
ResourceSync - Overview and Real-World Use Cases for Discovery, Harvesting, a...
 
Resource sync overview and real-world use cases for discovery, harvesting, an...
Resource sync overview and real-world use cases for discovery, harvesting, an...Resource sync overview and real-world use cases for discovery, harvesting, an...
Resource sync overview and real-world use cases for discovery, harvesting, an...
 
Empowering a cloud based Internet of thing European Project
Empowering a cloud based Internet of thing European ProjectEmpowering a cloud based Internet of thing European Project
Empowering a cloud based Internet of thing European Project
 
Application of Library Management Software: NewGenLib
Application of Library Management Software: NewGenLibApplication of Library Management Software: NewGenLib
Application of Library Management Software: NewGenLib
 
Repositories for OA, RDM and Beyond - Rory McNicholl
Repositories for OA, RDM and Beyond - Rory McNichollRepositories for OA, RDM and Beyond - Rory McNicholl
Repositories for OA, RDM and Beyond - Rory McNicholl
 
ISWC 2016 Tutorial: Semantic Web of Things M3 framework & FIESTA-IoT EU project
ISWC 2016 Tutorial: Semantic Web of Things  M3 framework & FIESTA-IoT EU projectISWC 2016 Tutorial: Semantic Web of Things  M3 framework & FIESTA-IoT EU project
ISWC 2016 Tutorial: Semantic Web of Things M3 framework & FIESTA-IoT EU project
 
Visual Information Analysis for Crisis and Natural Disasters Management and R...
Visual Information Analysis for Crisis and Natural Disasters Management and R...Visual Information Analysis for Crisis and Natural Disasters Management and R...
Visual Information Analysis for Crisis and Natural Disasters Management and R...
 
A Framework for Context-aware applications for Smart Spaces. ruSmart 2011 St ...
A Framework for Context-aware applications for Smart Spaces. ruSmart 2011 St ...A Framework for Context-aware applications for Smart Spaces. ruSmart 2011 St ...
A Framework for Context-aware applications for Smart Spaces. ruSmart 2011 St ...
 
Hypermedia
HypermediaHypermedia
Hypermedia
 
Interactions in Mixed Reality or what is mixed reality and how can we make ap...
Interactions in Mixed Reality or what is mixed reality and how can we make ap...Interactions in Mixed Reality or what is mixed reality and how can we make ap...
Interactions in Mixed Reality or what is mixed reality and how can we make ap...
 
CPaaS.io Y1 Review Meeting - Platform Architecture
CPaaS.io Y1 Review Meeting - Platform ArchitectureCPaaS.io Y1 Review Meeting - Platform Architecture
CPaaS.io Y1 Review Meeting - Platform Architecture
 
Breaking Down Walls in Enterprise with Social Semantics
Breaking Down Walls in Enterprise with Social SemanticsBreaking Down Walls in Enterprise with Social Semantics
Breaking Down Walls in Enterprise with Social Semantics
 
OpenMinteD Project - building a TDM infrastructure
OpenMinteD Project - building a TDM infrastructureOpenMinteD Project - building a TDM infrastructure
OpenMinteD Project - building a TDM infrastructure
 

More from sneridagh (7)

Meet Quanta - Plone's Style Guide
Meet Quanta - Plone's Style GuideMeet Quanta - Plone's Style Guide
Meet Quanta - Plone's Style Guide
 
Plone 5 theming
Plone 5 themingPlone 5 theming
Plone 5 theming
 
Key factors of the content management
Key factors of the content managementKey factors of the content management
Key factors of the content management
 
Factors claus de la gestió de continguts
Factors claus de la gestió de contingutsFactors claus de la gestió de continguts
Factors claus de la gestió de continguts
 
Plone 5 theming unleashed
Plone 5 theming unleashedPlone 5 theming unleashed
Plone 5 theming unleashed
 
Introduction to Pyramid
Introduction to PyramidIntroduction to Pyramid
Introduction to Pyramid
 
Arquitectura de serveis per aplicacions mòbils
Arquitectura de serveis per aplicacions mòbilsArquitectura de serveis per aplicacions mòbils
Arquitectura de serveis per aplicacions mòbils
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

MAX: Realtime messaging and activity stream engine