SlideShare a Scribd company logo
Boundary Front end tech talk: how it works
Tech Talk - Frontend
Stephen Boak (steve@boundary.com)
Mark Mahoney (mark@boundary.com)
Matt King (m@boundary.com)
When we say real-time we mean it: JSON being
pushed to the browser once a second and
visualizations built to constantly move and adapt
to streaming data
Boundary | Architecture
Meters                                     !
         Lightweight and highly scalable, these sit on the cloud as well as
         private data centers across virtual or physical servers.
Intercept Meter data via Transport
Collectors   Layer Security (TLS) Authentication.
Collect all of the data at high resolution to gain rich insight into complex
Data Store   environments & problems before they can impact critical business services.
Real-time continuous data streaming at
Streaming   high resolution, low latency intervals.
Stream data to your dashboard with sub-second latency,
Streaming UI   providing you with intuitive, powerful dashboard.
How We Get Data

• CometD server (streaker)!

• Pulls in data from multiple backend services and
  streams it out to clients!

• Can also aggregate and filter data on demand
Subscriptions
         1                   2                  3                   4                5

       Make a            Get back a        Subscribe to           Receive          Receive
subscription request   subscription ID      new query           state-dump       add/remove
  (query and filters)     (Query ID)      (unique channel)   (inserts & schema)    messages




                                                                                   !!
       !




                                              !
                           !




                                                                 !
Data Structure

• Schema and key
  (which fields are concatenated for each record)

• State dump with schema for requested time window
  (up to 100kb state dumps)

• Save bandwidth with N-tuples indexed by the schema

• Adds/removes update the state with keys (subset of schema)
JSON
Example port:protocol subscription                           State Object
{                                                            {
    channel:""/query/ac3941b8924a2f73/custom9                    "1331234598000:80:6":"{
    query92f536bbc93f159418b98f1a973b5dc4e78379                    "epochMillis":=1331234598000,
    filter979564d6c94c9394f479abae906ff95a3411e9                   "portProtocol":="80:6",
    aggregation9b5cc18d49098d949c29a08497037b08a30e6"              "ingressPackets":"100,
    data:"{                                                        "ingressOctets":"8463,
      insert:"[[1331234598000,"80:6,"100,"8463,"93,"               "egressPackets":"93,
      9672],"[1331234925000,"8080:6,"242,"39657,"243,"             "egressOctets":"9672
      40865],"…],                                                },
      keys:"[epochMillis,"portProtocol],                         "1331234925000:8080:6":"{
      schema:"[epochMillis,"portProtocol,"ingressPackets,"         "epochMillis":=1331234925000,
      ingressOctets,"egressPackets,"egressOctets],                 "portProtocol":="8080:6",
      timestamp:"1331235119001                                     "ingressPackets":"242,
    }                                                              "ingressOctets":"39657,
}                                                                  "egressPackets":"243,
                                                                   "egressOctets":"40865
                                                                 }
                                                                 …
                                                             }
DataSource.js
• Negotiates between multiple data
  sources and subscribers on a page        Subscriptions

• One data source for N subscribers                Data
                                                Sources

• Abstracts CometD subscription
  process for JS development
                                            Subscribers
• Smart enough to resubscribe and
  notifies subscribers
 (so that state dumps aren’t doubled up)
bndry.datasource repo

//"Receives"object"with"properties"for"state,"inserts"and"removes."
function"updateData(data)"{"
" console.log(data.added);"
}"

//"Create"a"handle"to"a"new"data"source"
var"volumeDataSource"="bndry.dataSource('volume_1s');"

//"Add"a"subscriber"and"start"getting"updates."
volumeDataSource.addSubscriber(updateData);
Demo Time
Data and Subcription Problems

• Monolithic, Multi-Purpose Queries
• Large State Dumps cause CometD timeout
  (5-10MBs per second)
• No Resubscription
• Aggregated all data on front-end
Data and Subcription Solutions

• Stratified, Filterable Queries and server-side aggregation
• Top-N Limitations
  (constrained output)
• Resubscription & filtering
• Web workers haven’t helped much
• Time smoothing (1-second ticks)
Visualization

DOM manipulation is expensive         ...so is tweening




                                SVG                       Canvas
What’s Next

• WebSockets

• Historical Data and long term data storage

• HTML5 local storage (store data)

• Machine-learning for real-time network visualization
Thank You

More Related Content

PPTX
Python and MongoDB as a Market Data Platform by James Blackburn
PDF
CFS: Cassandra backed storage for Hadoop
PPTX
Couchbase Data Platform | Big Data Demystified
PPT
MongoDB Tick Data Presentation
PDF
MongodB Internals
PPTX
MongoDB - External Authentication
PPTX
MongoDB for Beginners
PPTX
Back to Basics Webinar 1: Introduction to NoSQL
Python and MongoDB as a Market Data Platform by James Blackburn
CFS: Cassandra backed storage for Hadoop
Couchbase Data Platform | Big Data Demystified
MongoDB Tick Data Presentation
MongodB Internals
MongoDB - External Authentication
MongoDB for Beginners
Back to Basics Webinar 1: Introduction to NoSQL

What's hot (20)

PPTX
Mongo db – document oriented database
PDF
MongoDB - An Introduction
PDF
Data day texas: Cassandra and the Cloud
PPTX
Real-Time Integration Between MongoDB and SQL Databases
PPTX
MongoDB + Spring
PPTX
Conceptos básicos. Seminario web 5: Introducción a Aggregation Framework
PPTX
Data Management 2: Conquering Data Proliferation
PPTX
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
PPTX
Data Management 3: Bulletproof Data Management
PPTX
Back to Basics, webinar 2: La tua prima applicazione MongoDB
PPTX
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
PPTX
Yes, Sql!
PPTX
Back to Basics Webinar 2: Your First MongoDB Application
PPTX
Tms training
PDF
Introduction to MongoDB
PDF
Mongo db basics
PDF
JSONiq - The SQL of NoSQL
PPT
Lecture 40 1
PPTX
Druid realtime indexing
PDF
Mongo db
Mongo db – document oriented database
MongoDB - An Introduction
Data day texas: Cassandra and the Cloud
Real-Time Integration Between MongoDB and SQL Databases
MongoDB + Spring
Conceptos básicos. Seminario web 5: Introducción a Aggregation Framework
Data Management 2: Conquering Data Proliferation
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Data Management 3: Bulletproof Data Management
Back to Basics, webinar 2: La tua prima applicazione MongoDB
Conceptos básicos. Seminario web 4: Indexación avanzada, índices de texto y g...
Yes, Sql!
Back to Basics Webinar 2: Your First MongoDB Application
Tms training
Introduction to MongoDB
Mongo db basics
JSONiq - The SQL of NoSQL
Lecture 40 1
Druid realtime indexing
Mongo db
Ad

Viewers also liked (8)

PDF
Boundary for puppet @ puppet conf2012
PDF
Distributed systems-radiology
PDF
Invoke dynamic your api to hotspot
PDF
Cad cam
PPTX
PDM - Precedence Diagram Method
PPTX
Solid modelling cg
PPT
Introduction to solid modeling
PPTX
Solid modeling
Boundary for puppet @ puppet conf2012
Distributed systems-radiology
Invoke dynamic your api to hotspot
Cad cam
PDM - Precedence Diagram Method
Solid modelling cg
Introduction to solid modeling
Solid modeling
Ad

Similar to Boundary Front end tech talk: how it works (20)

PDF
MongoDB in FS
PPTX
MongoDB Use Cases: Healthcare, CMS, Analytics
PDF
Couchbase Korea User Gorup 2nd Meetup #1
PDF
Confluent & MongoDB APAC Lunch & Learn
PDF
MongoDB and Web Scrapping with the Gyes Platform
PDF
Observability of InfluxDB IOx: Tracing, Metrics and System Tables
PPTX
What's new in MongoDB 3.6?
PDF
Fluentd meetup #3
PDF
MongoDB Tokyo - Monitoring and Queueing
PDF
Go simple-fast-elastic-with-couchbase-server-borkar
PPTX
Couchbase Overview - Monterey Bay Information Technologists Meetup 02.15.17
PDF
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...
KEY
An Evening with MongoDB - Orlando: Welcome and Keynote
PDF
MongoDB .local Toronto 2019: Using Change Streams to Keep Up with Your Data
PDF
Lab pratico per la progettazione di soluzioni MongoDB in ambito Internet of T...
PDF
MongoDB Solution for Internet of Things and Big Data
PDF
Introduction to Couchbase Server 2.0 - CouchConf SF - Tour and Demo
PDF
InfluxData Platform Future and Vision
PDF
TechShift: There’s light beyond LAMP
PDF
Transition from relational to NoSQL Philly DAMA Day
MongoDB in FS
MongoDB Use Cases: Healthcare, CMS, Analytics
Couchbase Korea User Gorup 2nd Meetup #1
Confluent & MongoDB APAC Lunch & Learn
MongoDB and Web Scrapping with the Gyes Platform
Observability of InfluxDB IOx: Tracing, Metrics and System Tables
What's new in MongoDB 3.6?
Fluentd meetup #3
MongoDB Tokyo - Monitoring and Queueing
Go simple-fast-elastic-with-couchbase-server-borkar
Couchbase Overview - Monterey Bay Information Technologists Meetup 02.15.17
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...
An Evening with MongoDB - Orlando: Welcome and Keynote
MongoDB .local Toronto 2019: Using Change Streams to Keep Up with Your Data
Lab pratico per la progettazione di soluzioni MongoDB in ambito Internet of T...
MongoDB Solution for Internet of Things and Big Data
Introduction to Couchbase Server 2.0 - CouchConf SF - Tour and Demo
InfluxData Platform Future and Vision
TechShift: There’s light beyond LAMP
Transition from relational to NoSQL Philly DAMA Day

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Machine learning based COVID-19 study performance prediction
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Encapsulation theory and applications.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation_ Review paper, used for researhc scholars
Machine learning based COVID-19 study performance prediction
Per capita expenditure prediction using model stacking based on satellite ima...
Digital-Transformation-Roadmap-for-Companies.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Empathic Computing: Creating Shared Understanding
Understanding_Digital_Forensics_Presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology
“AI and Expert System Decision Support & Business Intelligence Systems”
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Encapsulation theory and applications.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
20250228 LYD VKU AI Blended-Learning.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Boundary Front end tech talk: how it works

  • 2. Tech Talk - Frontend Stephen Boak (steve@boundary.com) Mark Mahoney (mark@boundary.com) Matt King (m@boundary.com)
  • 3. When we say real-time we mean it: JSON being pushed to the browser once a second and visualizations built to constantly move and adapt to streaming data
  • 5. Meters ! Lightweight and highly scalable, these sit on the cloud as well as private data centers across virtual or physical servers.
  • 6. Intercept Meter data via Transport Collectors Layer Security (TLS) Authentication.
  • 7. Collect all of the data at high resolution to gain rich insight into complex Data Store environments & problems before they can impact critical business services.
  • 8. Real-time continuous data streaming at Streaming high resolution, low latency intervals.
  • 9. Stream data to your dashboard with sub-second latency, Streaming UI providing you with intuitive, powerful dashboard.
  • 10. How We Get Data • CometD server (streaker)! • Pulls in data from multiple backend services and streams it out to clients! • Can also aggregate and filter data on demand
  • 11. Subscriptions 1 2 3 4 5 Make a Get back a Subscribe to Receive Receive subscription request subscription ID new query state-dump add/remove (query and filters) (Query ID) (unique channel) (inserts & schema) messages !! ! ! ! !
  • 12. Data Structure • Schema and key (which fields are concatenated for each record) • State dump with schema for requested time window (up to 100kb state dumps) • Save bandwidth with N-tuples indexed by the schema • Adds/removes update the state with keys (subset of schema)
  • 13. JSON Example port:protocol subscription State Object { { channel:""/query/ac3941b8924a2f73/custom9 "1331234598000:80:6":"{ query92f536bbc93f159418b98f1a973b5dc4e78379 "epochMillis":=1331234598000, filter979564d6c94c9394f479abae906ff95a3411e9 "portProtocol":="80:6", aggregation9b5cc18d49098d949c29a08497037b08a30e6" "ingressPackets":"100, data:"{ "ingressOctets":"8463, insert:"[[1331234598000,"80:6,"100,"8463,"93," "egressPackets":"93, 9672],"[1331234925000,"8080:6,"242,"39657,"243," "egressOctets":"9672 40865],"…], }, keys:"[epochMillis,"portProtocol], "1331234925000:8080:6":"{ schema:"[epochMillis,"portProtocol,"ingressPackets," "epochMillis":=1331234925000, ingressOctets,"egressPackets,"egressOctets], "portProtocol":="8080:6", timestamp:"1331235119001 "ingressPackets":"242, } "ingressOctets":"39657, } "egressPackets":"243, "egressOctets":"40865 } … }
  • 14. DataSource.js • Negotiates between multiple data sources and subscribers on a page Subscriptions • One data source for N subscribers Data Sources • Abstracts CometD subscription process for JS development Subscribers • Smart enough to resubscribe and notifies subscribers (so that state dumps aren’t doubled up)
  • 17. Data and Subcription Problems • Monolithic, Multi-Purpose Queries • Large State Dumps cause CometD timeout (5-10MBs per second) • No Resubscription • Aggregated all data on front-end
  • 18. Data and Subcription Solutions • Stratified, Filterable Queries and server-side aggregation • Top-N Limitations (constrained output) • Resubscription & filtering • Web workers haven’t helped much • Time smoothing (1-second ticks)
  • 19. Visualization DOM manipulation is expensive ...so is tweening SVG Canvas
  • 20. What’s Next • WebSockets • Historical Data and long term data storage • HTML5 local storage (store data) • Machine-learning for real-time network visualization