SlideShare a Scribd company logo
1 of 37
Download to read offline
Decentralised 
Communication 
matthew@matrix.org
WebRTC deliberately 
specifies no specific 
signaling protocol. 
2
3 
è It makes interoperability 
and federation hard. 
è It creates silos.
As a user: 
4
5
I want to use my preferred 
apps and services to 
communicate 
6
Not be forced into specific 
services chosen by my 
contacts. 
7
If email gives me that 
flexibility, why not VoIP and 
IM? 
8
Current signaling protocol 
options include: 
9 
• SIP 
• XMPP 
• WebRTC Data Channel 
(e.g. Open Peer) 
• Assorted HTTP APIs
SIP: 
10 
• Heavyweight 
• Complicated specification 
• Complicated stack 
• Buys little over HTTP
XMPP/Jingle: 
11 
• Streamed XML is debatable 
• Relatively complicated spec 
• Jingle has relatively little 
uptake 
• Custom stack
HTTP APIs: 
12 
• Simple 
• But fragmented 
• And often proprietary 
• Or closed (Firebase, Pusher, 
PubNub...)
Introducing Matrix 
13
Introducing Matrix 
• New Open Source project (launched Sept 2014) 
14
Introducing Matrix 
• New Open Source project (launched Sept 2014) 
• Setting up as non-profit org (matrix.org) 
15
Introducing Matrix 
• New Open Source project (launched Sept 2014) 
• Setting up as non-profit org (matrix.org) 
• Publishing pragmatic simple HTTP API standard 
for federated VoIP (WebRTC), IM and generic 
messaging. 
16
Introducing Matrix 
• New Open Source project (launched Sept 2014) 
• Setting up as non-profit org (matrix.org) 
• Publishing pragmatic simple HTTP API standard 
for federated VoIP (WebRTC), IM and generic 
messaging. 
• Defines client-server and server-server APIs 
(and, shortly, server<->application-server APIs). 
17
Introducing Matrix 
• New Open Source project (launched Sept 2014) 
• Setting up as non-profit org (matrix.org) 
• Publishing pragmatic simple HTTP API standard 
for federated VoIP (WebRTC), IM and generic 
messaging. 
• Defines client-server and server-server APIs 
(and, shortly, server<->application-server APIs). 
• Provides Apache-Licensed reference 
implementations of the server and clients (web, 
iOS, Android, Python, Perl...) 
18
Who is Matrix? 
Matthew Hodgson 
• Technical Leader of matrix.org 
• Set up and runs the Unified 
Communications line of business 
within Amdocs (formerly MX Telecom) 
• 11 years of experience building IP 
telephony solutions and leading units 
Amandine Le Pape 
• Business Leader of matrix.org 
• Set up and co-runs the Unified 
Communications line of business 
within Amdocs as a Product Manager 
• 10 years of experience in mobile 
services and telecommunications 
19 
The Dev Team 
• A dozen of experienced developers specialized in VoIP and IM mobile app 
development 
• Most of them originally from the Amdocs Unified Communications team (flagship 
deployment: blah.com) 
Matrix comes from realising that VoIP and IM fragmentation is 
holding back the whole industry - we didn't want to be part of the 
problem, but try to solve it.
Key Characteristics 
• Entirely open: 
– open standard; open source; open project. 
• Message History as first-class citizen 
• Group communication as first-class citizen 
– Fully distributed room state (cryptographically signed) 
- no SPOFs or SPOCs. 
• Strong cryptographic identity to prevent 
spoofing 
• Identity agnostic 
• End-to-end encryption (RSN) 
20
Demo time! 
21
Architecture 
Clients 
Home 
Servers 
Identity 
Servers 
Application 
Servers
Federation Demo 
23
The client-server API 
To send a message: 
curl 
-­‐XPOST 
-­‐d 
'{"msgtype":"m.text", 
"body":"hello"}' 
"https://alice.com:8448/_matrix/client/api/v1/rooms/ 
ROOM_ID/send/m.room.message?access_token=ACCESS_TOKEN" 
{ 
"event_id": 
"YUwRidLecu" 
} 
24
The client-server API 
To set up a WebRTC call: 
curl 
-­‐XPOST 
–d 
'{ 
"version": 
0, 
 
"call_id": 
"12345”, 
 
"offer": 
{ 
"type" 
: 
"offer”, 
"sdp" 
: 
"v=0rno=-­‐ 
658458 
2 
IN 
IP4 
127.0.0.1…" 
} 
}' 
"https://alice.com:8448/_matrix/client/api/v1/rooms/ 
ROOM_ID/send/m.call.invite?access_token=ACCESS_TOKEN" 
{ 
"event_id": 
"ZruiCZBu” 
} 
25
The client-server API 
To persist some MIDI: 
curl 
-­‐XPOST 
–d 
'{ 
"note": 
"71", 
"velocity": 
68, 
"state": 
"on", 
"channel": 
1, 
"midi_ts": 
374023441 
}' 
"https://alice.com:8448/_matrix/client/api/v1/rooms/ 
ROOM_ID/send/org.matrix.midi?access_token=ACCESS_TOKEN" 
{ 
"event_id": 
“ORzcZn2” 
} 
26
The client-server API 
…or to persist some tap gestures for animating an Avatar… 
curl 
-­‐XPOST 
–d 
'{ 
"thumbnail": 
"http://matrix.org:8080/_matrix/content/ 
QGtlZ2FuOm1hdHJpeC5vcmcvNupjfhmFhjxDPquSZGaGlYj.aW1hZ2UvcG5n.png", 
"actions": 
[ 
{"x": 
"0.5521607", 
"y": 
"6.224353", 
"t": 
"0.9479785"}, 
{"x": 
"0.5511537", 
"y": 
"6.220354", 
"t": 
"0.9701037"}, 
{"x": 
"0.5510949", 
"y": 
"6.214756", 
"t": 
"0.9804187"}, 
{"x": 
"0.5499267", 
"y": 
"6.213634", 
"t": 
"0.9972034"}, 
{"x": 
"0.5492241", 
"y": 
"6.210211", 
"t": 
"1.013744"}, 
{"x": 
"0.5486694", 
"y": 
"6.206304", 
"t": 
"1.030284"}, 
{"x": 
"0.5482137", 
"y": 
"6.201648", 
"t": 
"1.046764"}, 
... 
{"x": 
"0.9997056", 
"y": 
"4.022976", 
"t": 
"8.970592"}, 
{"x": 
"0.9995697", 
"y": 
"4.043199", 
"t": 
"8.987072"} 
] 
}' 
"https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ID/send/ 
org.matrix.demos.unity.stickmen?access_token=ACCESS_TOKEN" 
{ 
"event_id": 
“ORzcZn2” 
} 
27
The server-server API 
curl 
–XPOST 
–H 
‘Authorization: 
X-­‐Matrix 
origin=matrix.org,key=”898be4…”,sig=“j7JXfIcPFDWl1pdJz…”’ 
–d 
‘{ 
"ts": 
1413414391521, 
"origin": 
"matrix.org", 
"destination": 
"alice.com", 
"prev_ids": 
["e1da392e61898be4d2009b9fecce5325"], 
"pdus": 
[{ 
"age": 
314, 
"content": 
{ 
"body": 
"hello 
world", 
"msgtype": 
"m.text" 
}, 
"context": 
"!fkILCTRBTHhftNYgkP:matrix.org", 
"depth": 
26, 
"hashes": 
{ 
"sha256": 
"MqVORjmjauxBDBzSyN2+Yu+KJxw0oxrrJyuPW8NpELs" 
}, 
"is_state": 
false, 
"origin": 
"matrix.org", 
"pdu_id": 
"rKQFuZQawa", 
"pdu_type": 
"m.room.message", 
"prev_pdus": 
[ 
["PaBNREEuZj", 
"matrix.org"] 
], 
"signatures": 
{ 
"matrix.org": 
{ 
"ed25519:auto": 
"jZXTwAH/7EZbjHFhIFg8Xj6HGoSI+j7JXfIcPFDWl1pdJz+JJPMHTDIZRha75oJ7lg7UM+CnhNAayHWZsUY3Ag" 
} 
}, 
"origin_server_ts": 
1413414391521, 
"user_id": 
"@matthew:matrix.org" 
}] 
}’ 
https://alice.com:8448/_matrix/federation/v1/send/916d630ea616342b42e98a3be0b74113 
28
What about IoT? 
29
30 
CoAP: 
• REST over UDP (sort of) 
• Everything’s a server! 
(and a client) 
• Maps onto HTTP APIs. 
MQTT: 
• PubSub over TCP (sort of) 
• Everything can pub & sub! 
(via a broker). 
• Maps onto message passing.
31 
Both are very different. 
But neither provide: 
• Global federated messaging 
• Message History 
• Message Signing 
• E2E Encryption 
Matrix to the rescue?
echo 
'{"msgtype":"m.text", 
"body":"hello"}' 
| 
perl 
–MCBOR::XS 
–MJSON 
–pe 
'$_=encode_cbor 
decode_json' 
| 
coap-­‐client 
–m 
post 
 
coaps://alice.com/_m/c/a/v1/r/ROOM_ID/s/m.room.message? 
a=ACCESS_TOKEN 
is the same as… 
curl 
-­‐XPOST 
-­‐d 
'{"msgtype":"m.text", 
"body":"hello"}' 
"https://alice.com:8448/_matrix/client/api/v1/rooms/ 
ROOM_ID/send/m.room.message?access_token=ACCESS_TOKEN" 
32 
Exposing Matrix via CoAP 
is trivial:
33 
Any CoAP device can persist 
data into Matrix, and act on 
data pushed from Matrix. 
A Matrix-aware MQTT Broker 
could similarly store history to 
Matrix, and expose Matrix 
history and pubsub to MQTT 
clients.
Current Progress 
• Began May 2014 
• First public release in Sept 2014 
• Crypto and iOS/Android landed Oct 2014 
• Next up: 
– Complete the spec 
– Complete federation implementation 
– Declare reference server production ready 
– UX polish for the reference clients 
– Define Application Server APIs 
– End-to-End Encryption 
– IoT implementations! 
34
Get involved! 
• Run a server 
è host your own data or be a trusted provider 
for your customers 
• Build something (anything!) on top 
• Build interoperability gateways 
è add a whole new ecosystem to your 
community 
Check out http://matrix.org! 
Follow us at @matrixdotorg! 
35
THANK YOU! 
http://matrix.org 
matrix: @matthew:matrix.org 
mail: matthew@matrix.org 
twitter: @matrixdotorg 
36
Why not XMPP? 
• We used to use XMPP (ejabberd, OpenFire, Spectrum, 
psyced, Psi, Pidgin, ASmack, Spark, XMPP.Framework) 
• We built an alternative because: 
– Single server per MUC is single point of control 
– Synchronised history is a very 2nd class citizen 
– Stanzas aren't framed or reliably delivered 
– XMPP stacks are not easy to implement in a web environment 
– Jingle is complicated and exotic 
– XML is needlessly verbose and unwieldy 
– The baseline feature-set is too minimal 
– JIDs haven't taken off like Email or MSISDNs 
– Not designed for mobile use cases (e.g. push; low bw) 
– Well documented spam and identity/security issues 
– ejabberd

More Related Content

What's hot

Distributed Crypto-Currency Trading with Apache Pulsar
Distributed Crypto-Currency Trading with Apache PulsarDistributed Crypto-Currency Trading with Apache Pulsar
Distributed Crypto-Currency Trading with Apache PulsarStreamlio
 
ARM CoAP Tutorial
ARM CoAP TutorialARM CoAP Tutorial
ARM CoAP Tutorialzdshelby
 
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE
 
Apache Deep Learning 201 - Philly Open Source
Apache Deep Learning 201 - Philly Open SourceApache Deep Learning 201 - Philly Open Source
Apache Deep Learning 201 - Philly Open SourceTimothy Spann
 
Coap based application for android phones
Coap based application for android phonesCoap based application for android phones
Coap based application for android phonesMd Syed Ahamad
 
DEVNET-2005 Using the Cisco Open SDN Controller RESTCONF APIs
DEVNET-2005	Using the Cisco Open SDN Controller RESTCONF APIsDEVNET-2005	Using the Cisco Open SDN Controller RESTCONF APIs
DEVNET-2005 Using the Cisco Open SDN Controller RESTCONF APIsCisco DevNet
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperMark West
 
A Transport Layer and Socket API for (h)ICN: Design, Implementation and Perfo...
A Transport Layer and Socket API for (h)ICN: Design, Implementation and Perfo...A Transport Layer and Socket API for (h)ICN: Design, Implementation and Perfo...
A Transport Layer and Socket API for (h)ICN: Design, Implementation and Perfo...Luca Muscariello
 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperabilityMichael Koster
 
The Next Generation Internet Number Registry Services
The Next Generation Internet Number Registry ServicesThe Next Generation Internet Number Registry Services
The Next Generation Internet Number Registry ServicesMyNOG
 
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021StreamNative
 
[March sn meetup] apache pulsar + apache nifi for cloud data lake
[March sn meetup] apache pulsar + apache nifi for cloud data lake[March sn meetup] apache pulsar + apache nifi for cloud data lake
[March sn meetup] apache pulsar + apache nifi for cloud data lakeTimothy Spann
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelJosé Román Martín Gil
 
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....Marcin Bielak
 
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTCWebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTCAmir Zmora
 
DEVNET-1164 Using OpenDaylight for Notification Driven Workflows
DEVNET-1164	Using OpenDaylight for Notification Driven WorkflowsDEVNET-1164	Using OpenDaylight for Notification Driven Workflows
DEVNET-1164 Using OpenDaylight for Notification Driven WorkflowsCisco DevNet
 
OpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight
 
ThaiNOG Day 2019: Internet Number Registry Services, the Next Generation
ThaiNOG Day 2019: Internet Number Registry Services, the Next GenerationThaiNOG Day 2019: Internet Number Registry Services, the Next Generation
ThaiNOG Day 2019: Internet Number Registry Services, the Next GenerationAPNIC
 
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationWebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationAmir Zmora
 

What's hot (20)

Distributed Crypto-Currency Trading with Apache Pulsar
Distributed Crypto-Currency Trading with Apache PulsarDistributed Crypto-Currency Trading with Apache Pulsar
Distributed Crypto-Currency Trading with Apache Pulsar
 
ARM CoAP Tutorial
ARM CoAP TutorialARM CoAP Tutorial
ARM CoAP Tutorial
 
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
 
Apache Deep Learning 201 - Philly Open Source
Apache Deep Learning 201 - Philly Open SourceApache Deep Learning 201 - Philly Open Source
Apache Deep Learning 201 - Philly Open Source
 
Coap based application for android phones
Coap based application for android phonesCoap based application for android phones
Coap based application for android phones
 
DEVNET-2005 Using the Cisco Open SDN Controller RESTCONF APIs
DEVNET-2005	Using the Cisco Open SDN Controller RESTCONF APIsDEVNET-2005	Using the Cisco Open SDN Controller RESTCONF APIs
DEVNET-2005 Using the Cisco Open SDN Controller RESTCONF APIs
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java Developer
 
A Transport Layer and Socket API for (h)ICN: Design, Implementation and Perfo...
A Transport Layer and Socket API for (h)ICN: Design, Implementation and Perfo...A Transport Layer and Socket API for (h)ICN: Design, Implementation and Perfo...
A Transport Layer and Socket API for (h)ICN: Design, Implementation and Perfo...
 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperability
 
The Next Generation Internet Number Registry Services
The Next Generation Internet Number Registry ServicesThe Next Generation Internet Number Registry Services
The Next Generation Internet Number Registry Services
 
Osiot14 buildout
Osiot14 buildoutOsiot14 buildout
Osiot14 buildout
 
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
 
[March sn meetup] apache pulsar + apache nifi for cloud data lake
[March sn meetup] apache pulsar + apache nifi for cloud data lake[March sn meetup] apache pulsar + apache nifi for cloud data lake
[March sn meetup] apache pulsar + apache nifi for cloud data lake
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
 
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
 
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTCWebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
 
DEVNET-1164 Using OpenDaylight for Notification Driven Workflows
DEVNET-1164	Using OpenDaylight for Notification Driven WorkflowsDEVNET-1164	Using OpenDaylight for Notification Driven Workflows
DEVNET-1164 Using OpenDaylight for Notification Driven Workflows
 
OpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering Explained
 
ThaiNOG Day 2019: Internet Number Registry Services, the Next Generation
ThaiNOG Day 2019: Internet Number Registry Services, the Next GenerationThaiNOG Day 2019: Internet Number Registry Services, the Next Generation
ThaiNOG Day 2019: Internet Number Registry Services, the Next Generation
 
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationWebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
 

Similar to Matrix.org decentralised communication, Matthew Hodgson, TADSummit

Docker Networking with Container Orchestration Engines [Docker Meetup Santa C...
Docker Networking with Container Orchestration Engines [Docker Meetup Santa C...Docker Networking with Container Orchestration Engines [Docker Meetup Santa C...
Docker Networking with Container Orchestration Engines [Docker Meetup Santa C...Debra Robertson
 
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...PLUMgrid
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsPaloSanto Solutions
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API GatewayYohann Ciurlik
 
Real-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoTReal-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoTAll Things Open
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a ServiceJesus Rodriguez
 
Building an Event Streaming Architecture with Apache Pulsar
Building an Event Streaming Architecture with Apache PulsarBuilding an Event Streaming Architecture with Apache Pulsar
Building an Event Streaming Architecture with Apache PulsarScyllaDB
 
Construyendo un nuevo ecosistema para comunicaciones interoperables
Construyendo un nuevo ecosistema para comunicaciones interoperablesConstruyendo un nuevo ecosistema para comunicaciones interoperables
Construyendo un nuevo ecosistema para comunicaciones interoperablesOpenDireito
 
2024 Feb AI Meetup NYC GenAI_LLMs_ML_Data Codeless Generative AI Pipelines
2024 Feb AI Meetup NYC GenAI_LLMs_ML_Data Codeless Generative AI Pipelines2024 Feb AI Meetup NYC GenAI_LLMs_ML_Data Codeless Generative AI Pipelines
2024 Feb AI Meetup NYC GenAI_LLMs_ML_Data Codeless Generative AI PipelinesTimothy Spann
 
The Current And Future State Of Service Mesh
The Current And Future State Of Service MeshThe Current And Future State Of Service Mesh
The Current And Future State Of Service MeshRam Vennam
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsChristian Heindel
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack apiLiang Bo
 
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203Arnaud Le Hors
 
Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virendervithakur
 
MUM Middle East 2016 - System Integration Analyst
MUM Middle East 2016 - System Integration AnalystMUM Middle East 2016 - System Integration Analyst
MUM Middle East 2016 - System Integration AnalystFajar Nugroho
 
ClickHouse Paris Meetup. Pragma Analytics Software Suite w/ClickHouse, by Mat...
ClickHouse Paris Meetup. Pragma Analytics Software Suite w/ClickHouse, by Mat...ClickHouse Paris Meetup. Pragma Analytics Software Suite w/ClickHouse, by Mat...
ClickHouse Paris Meetup. Pragma Analytics Software Suite w/ClickHouse, by Mat...Altinity Ltd
 
SignalR Dublin ALT.NET
SignalR Dublin ALT.NETSignalR Dublin ALT.NET
SignalR Dublin ALT.NETDorin Manoli
 

Similar to Matrix.org decentralised communication, Matthew Hodgson, TADSummit (20)

Docker Networking with Container Orchestration Engines [Docker Meetup Santa C...
Docker Networking with Container Orchestration Engines [Docker Meetup Santa C...Docker Networking with Container Orchestration Engines [Docker Meetup Santa C...
Docker Networking with Container Orchestration Engines [Docker Meetup Santa C...
 
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
Docker Networking in Swarm, Mesos and Kubernetes [Docker Meetup Santa Clara |...
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communications
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
KONG-APIGateway.pptx
KONG-APIGateway.pptxKONG-APIGateway.pptx
KONG-APIGateway.pptx
 
Real-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoTReal-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoT
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a Service
 
Building an Event Streaming Architecture with Apache Pulsar
Building an Event Streaming Architecture with Apache PulsarBuilding an Event Streaming Architecture with Apache Pulsar
Building an Event Streaming Architecture with Apache Pulsar
 
Construyendo un nuevo ecosistema para comunicaciones interoperables
Construyendo un nuevo ecosistema para comunicaciones interoperablesConstruyendo un nuevo ecosistema para comunicaciones interoperables
Construyendo un nuevo ecosistema para comunicaciones interoperables
 
2024 Feb AI Meetup NYC GenAI_LLMs_ML_Data Codeless Generative AI Pipelines
2024 Feb AI Meetup NYC GenAI_LLMs_ML_Data Codeless Generative AI Pipelines2024 Feb AI Meetup NYC GenAI_LLMs_ML_Data Codeless Generative AI Pipelines
2024 Feb AI Meetup NYC GenAI_LLMs_ML_Data Codeless Generative AI Pipelines
 
The Current And Future State Of Service Mesh
The Current And Future State Of Service MeshThe Current And Future State Of Service Mesh
The Current And Future State Of Service Mesh
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
 
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
 
Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virender
 
Publishing Microservices Applications
Publishing Microservices ApplicationsPublishing Microservices Applications
Publishing Microservices Applications
 
MUM Middle East 2016 - System Integration Analyst
MUM Middle East 2016 - System Integration AnalystMUM Middle East 2016 - System Integration Analyst
MUM Middle East 2016 - System Integration Analyst
 
ClickHouse Paris Meetup. Pragma Analytics Software Suite w/ClickHouse, by Mat...
ClickHouse Paris Meetup. Pragma Analytics Software Suite w/ClickHouse, by Mat...ClickHouse Paris Meetup. Pragma Analytics Software Suite w/ClickHouse, by Mat...
ClickHouse Paris Meetup. Pragma Analytics Software Suite w/ClickHouse, by Mat...
 
SignalR Dublin ALT.NET
SignalR Dublin ALT.NETSignalR Dublin ALT.NET
SignalR Dublin ALT.NET
 

More from Alan Quayle

Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Alan Quayle
 
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Alan Quayle
 
What makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelWhat makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelAlan Quayle
 
eSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasaleSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasalAlan Quayle
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeAlan Quayle
 
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...Alan Quayle
 
Programmable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigProgrammable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigAlan Quayle
 
How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...Alan Quayle
 
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisLatest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisAlan Quayle
 
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...Alan Quayle
 
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Alan Quayle
 
Open Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleOpen Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleAlan Quayle
 
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuOpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuAlan Quayle
 
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoTADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoAlan Quayle
 
What happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleWhat happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleAlan Quayle
 
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichStacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichAlan Quayle
 
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...Alan Quayle
 
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateFounding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateAlan Quayle
 
How to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro GauciHow to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro GauciAlan Quayle
 

More from Alan Quayle (20)

What is a vCon?
What is a vCon?What is a vCon?
What is a vCon?
 
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
 
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
 
What makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelWhat makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias Goebel
 
eSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasaleSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João Casal
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
 
Programmable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigProgrammable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas Granig
 
How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...
 
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisLatest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
 
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
 
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
 
Open Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleOpen Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan Quayle
 
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuOpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
 
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoTADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
 
What happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleWhat happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan Quayle
 
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichStacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
 
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
 
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateFounding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
 
How to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro GauciHow to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro Gauci
 

Recently uploaded

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 

Recently uploaded (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 

Matrix.org decentralised communication, Matthew Hodgson, TADSummit

  • 2. WebRTC deliberately specifies no specific signaling protocol. 2
  • 3. 3 è It makes interoperability and federation hard. è It creates silos.
  • 5. 5
  • 6. I want to use my preferred apps and services to communicate 6
  • 7. Not be forced into specific services chosen by my contacts. 7
  • 8. If email gives me that flexibility, why not VoIP and IM? 8
  • 9. Current signaling protocol options include: 9 • SIP • XMPP • WebRTC Data Channel (e.g. Open Peer) • Assorted HTTP APIs
  • 10. SIP: 10 • Heavyweight • Complicated specification • Complicated stack • Buys little over HTTP
  • 11. XMPP/Jingle: 11 • Streamed XML is debatable • Relatively complicated spec • Jingle has relatively little uptake • Custom stack
  • 12. HTTP APIs: 12 • Simple • But fragmented • And often proprietary • Or closed (Firebase, Pusher, PubNub...)
  • 14. Introducing Matrix • New Open Source project (launched Sept 2014) 14
  • 15. Introducing Matrix • New Open Source project (launched Sept 2014) • Setting up as non-profit org (matrix.org) 15
  • 16. Introducing Matrix • New Open Source project (launched Sept 2014) • Setting up as non-profit org (matrix.org) • Publishing pragmatic simple HTTP API standard for federated VoIP (WebRTC), IM and generic messaging. 16
  • 17. Introducing Matrix • New Open Source project (launched Sept 2014) • Setting up as non-profit org (matrix.org) • Publishing pragmatic simple HTTP API standard for federated VoIP (WebRTC), IM and generic messaging. • Defines client-server and server-server APIs (and, shortly, server<->application-server APIs). 17
  • 18. Introducing Matrix • New Open Source project (launched Sept 2014) • Setting up as non-profit org (matrix.org) • Publishing pragmatic simple HTTP API standard for federated VoIP (WebRTC), IM and generic messaging. • Defines client-server and server-server APIs (and, shortly, server<->application-server APIs). • Provides Apache-Licensed reference implementations of the server and clients (web, iOS, Android, Python, Perl...) 18
  • 19. Who is Matrix? Matthew Hodgson • Technical Leader of matrix.org • Set up and runs the Unified Communications line of business within Amdocs (formerly MX Telecom) • 11 years of experience building IP telephony solutions and leading units Amandine Le Pape • Business Leader of matrix.org • Set up and co-runs the Unified Communications line of business within Amdocs as a Product Manager • 10 years of experience in mobile services and telecommunications 19 The Dev Team • A dozen of experienced developers specialized in VoIP and IM mobile app development • Most of them originally from the Amdocs Unified Communications team (flagship deployment: blah.com) Matrix comes from realising that VoIP and IM fragmentation is holding back the whole industry - we didn't want to be part of the problem, but try to solve it.
  • 20. Key Characteristics • Entirely open: – open standard; open source; open project. • Message History as first-class citizen • Group communication as first-class citizen – Fully distributed room state (cryptographically signed) - no SPOFs or SPOCs. • Strong cryptographic identity to prevent spoofing • Identity agnostic • End-to-end encryption (RSN) 20
  • 22. Architecture Clients Home Servers Identity Servers Application Servers
  • 24. The client-server API To send a message: curl -­‐XPOST -­‐d '{"msgtype":"m.text", "body":"hello"}' "https://alice.com:8448/_matrix/client/api/v1/rooms/ ROOM_ID/send/m.room.message?access_token=ACCESS_TOKEN" { "event_id": "YUwRidLecu" } 24
  • 25. The client-server API To set up a WebRTC call: curl -­‐XPOST –d '{ "version": 0, "call_id": "12345”, "offer": { "type" : "offer”, "sdp" : "v=0rno=-­‐ 658458 2 IN IP4 127.0.0.1…" } }' "https://alice.com:8448/_matrix/client/api/v1/rooms/ ROOM_ID/send/m.call.invite?access_token=ACCESS_TOKEN" { "event_id": "ZruiCZBu” } 25
  • 26. The client-server API To persist some MIDI: curl -­‐XPOST –d '{ "note": "71", "velocity": 68, "state": "on", "channel": 1, "midi_ts": 374023441 }' "https://alice.com:8448/_matrix/client/api/v1/rooms/ ROOM_ID/send/org.matrix.midi?access_token=ACCESS_TOKEN" { "event_id": “ORzcZn2” } 26
  • 27. The client-server API …or to persist some tap gestures for animating an Avatar… curl -­‐XPOST –d '{ "thumbnail": "http://matrix.org:8080/_matrix/content/ QGtlZ2FuOm1hdHJpeC5vcmcvNupjfhmFhjxDPquSZGaGlYj.aW1hZ2UvcG5n.png", "actions": [ {"x": "0.5521607", "y": "6.224353", "t": "0.9479785"}, {"x": "0.5511537", "y": "6.220354", "t": "0.9701037"}, {"x": "0.5510949", "y": "6.214756", "t": "0.9804187"}, {"x": "0.5499267", "y": "6.213634", "t": "0.9972034"}, {"x": "0.5492241", "y": "6.210211", "t": "1.013744"}, {"x": "0.5486694", "y": "6.206304", "t": "1.030284"}, {"x": "0.5482137", "y": "6.201648", "t": "1.046764"}, ... {"x": "0.9997056", "y": "4.022976", "t": "8.970592"}, {"x": "0.9995697", "y": "4.043199", "t": "8.987072"} ] }' "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ID/send/ org.matrix.demos.unity.stickmen?access_token=ACCESS_TOKEN" { "event_id": “ORzcZn2” } 27
  • 28. The server-server API curl –XPOST –H ‘Authorization: X-­‐Matrix origin=matrix.org,key=”898be4…”,sig=“j7JXfIcPFDWl1pdJz…”’ –d ‘{ "ts": 1413414391521, "origin": "matrix.org", "destination": "alice.com", "prev_ids": ["e1da392e61898be4d2009b9fecce5325"], "pdus": [{ "age": 314, "content": { "body": "hello world", "msgtype": "m.text" }, "context": "!fkILCTRBTHhftNYgkP:matrix.org", "depth": 26, "hashes": { "sha256": "MqVORjmjauxBDBzSyN2+Yu+KJxw0oxrrJyuPW8NpELs" }, "is_state": false, "origin": "matrix.org", "pdu_id": "rKQFuZQawa", "pdu_type": "m.room.message", "prev_pdus": [ ["PaBNREEuZj", "matrix.org"] ], "signatures": { "matrix.org": { "ed25519:auto": "jZXTwAH/7EZbjHFhIFg8Xj6HGoSI+j7JXfIcPFDWl1pdJz+JJPMHTDIZRha75oJ7lg7UM+CnhNAayHWZsUY3Ag" } }, "origin_server_ts": 1413414391521, "user_id": "@matthew:matrix.org" }] }’ https://alice.com:8448/_matrix/federation/v1/send/916d630ea616342b42e98a3be0b74113 28
  • 30. 30 CoAP: • REST over UDP (sort of) • Everything’s a server! (and a client) • Maps onto HTTP APIs. MQTT: • PubSub over TCP (sort of) • Everything can pub & sub! (via a broker). • Maps onto message passing.
  • 31. 31 Both are very different. But neither provide: • Global federated messaging • Message History • Message Signing • E2E Encryption Matrix to the rescue?
  • 32. echo '{"msgtype":"m.text", "body":"hello"}' | perl –MCBOR::XS –MJSON –pe '$_=encode_cbor decode_json' | coap-­‐client –m post coaps://alice.com/_m/c/a/v1/r/ROOM_ID/s/m.room.message? a=ACCESS_TOKEN is the same as… curl -­‐XPOST -­‐d '{"msgtype":"m.text", "body":"hello"}' "https://alice.com:8448/_matrix/client/api/v1/rooms/ ROOM_ID/send/m.room.message?access_token=ACCESS_TOKEN" 32 Exposing Matrix via CoAP is trivial:
  • 33. 33 Any CoAP device can persist data into Matrix, and act on data pushed from Matrix. A Matrix-aware MQTT Broker could similarly store history to Matrix, and expose Matrix history and pubsub to MQTT clients.
  • 34. Current Progress • Began May 2014 • First public release in Sept 2014 • Crypto and iOS/Android landed Oct 2014 • Next up: – Complete the spec – Complete federation implementation – Declare reference server production ready – UX polish for the reference clients – Define Application Server APIs – End-to-End Encryption – IoT implementations! 34
  • 35. Get involved! • Run a server è host your own data or be a trusted provider for your customers • Build something (anything!) on top • Build interoperability gateways è add a whole new ecosystem to your community Check out http://matrix.org! Follow us at @matrixdotorg! 35
  • 36. THANK YOU! http://matrix.org matrix: @matthew:matrix.org mail: matthew@matrix.org twitter: @matrixdotorg 36
  • 37. Why not XMPP? • We used to use XMPP (ejabberd, OpenFire, Spectrum, psyced, Psi, Pidgin, ASmack, Spark, XMPP.Framework) • We built an alternative because: – Single server per MUC is single point of control – Synchronised history is a very 2nd class citizen – Stanzas aren't framed or reliably delivered – XMPP stacks are not easy to implement in a web environment – Jingle is complicated and exotic – XML is needlessly verbose and unwieldy – The baseline feature-set is too minimal – JIDs haven't taken off like Email or MSISDNs – Not designed for mobile use cases (e.g. push; low bw) – Well documented spam and identity/security issues – ejabberd