DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Data Engineering
  3. Data
  4. Zoomdata Microservices and the Web Application

Zoomdata Microservices and the Web Application

A tech executive explains why his team chose a microservices architecture when building their web application. Read on for more!

Ruhollah Farchtchi user avatar by
Ruhollah Farchtchi
·
Feb. 01, 19 · Analysis
Like (2)
Save
Tweet
Share
11.23K Views

Join the DZone community and get the full member experience.

Join For Free

As we said in our introductory post, we’re going to do several posts about Zoomdata microservices. This one covers a brief overview of microservices and the Zoomdata web application.

Zoomdata Microservices, In General

The Zoomdata platform is architected as a set of loosely-coupled Java microservices. Unlike traditional BI, which is deployed as a monolithic application (or possibly entwined in an old-school enterprise service bus), a microservices architecture allows for:

  • Faster deployment of new functionality.
  • Optimal resource management.
  • Faster recovery in some failure scenarios.
  • Greater deployment flexibility.

To optimize memory allocation and runtime attributes, each Zoomdata microservice runs in its own Java Virtual Machine (JVM). Running independently means that a failure in one service doesn’t take down all of Zoomdata, and recovery is faster because only the failed service needs to restart. Deploying new functionality, such as an updated or custom Smart Data Connector, is also faster because it occurs by auto-discovery, without requiring a server restart.

(Want to learn more? This DZone article, Why Use Microservices? is pretty good.)

Zoomdata Microservices: Some Specifics

Zoomdata microservices consist of an HTML5 web application front-end, a query engine, independent Smart Data Connectors for traditional and modern data sources, a stream writer, and complementary services such as a scheduler and screenshot service. Separately, Zoomdata centralizes its metadata store in a relational database and includes an internal messaging queue. Communication protocols include websockets for real-time, bidirectional communication (websockets are important, keep reading!), and HTTP/S.

The Zoomdata Web Application

Zoomdata provides a single web user interface that adapts to the needs of administrators, dashboard developers, analysts, and casual users. There is absolutely no client-side installation to manage. The web application is compatible with modern browsers that support HTML5 and the websocket communication protocol.

The web browser (or any application that connects to Zoomdata with our JavaScript client) is responsible for establishing a two-way websocket communication channel between itself and the Zoomdata query engine. The web browser keeps the websocket connection alive and automatically reconnects to the query engine in case of a network hiccup. Because websockets are “live” two-way connections, data can stream to the dashboard while users issue requests such as creating new charts, changing metrics or groupings, zooming down to lower level detail, and filtering.

The Zoomdata web application delivers end-user functionality such as:

  • Data Sharpening™ to stream estimated results when working with very large data sets.
  • Timebar slider to simplify time-based filtering.
  • Data DVR to pause, rewind, play, and fast forward data streams.
  • Live Mode for visualizing near real-time data streams.
  • Search box and facets to maximize performance when connecting to search-enabled data platforms such as Apache Solr and Elasticsearch.

A Non-Blocking Data Exploration Experience

There’s more and better BI! The web application offers a “non-blocking” data exploration experience. There are two ways to understand the non-blocking UI and they’re both pretty big deals.

One is that data loads independently in each data visualization, so viewing a complex or dense dashboard is not slowed down by the longest running query.

The second is that, while data rolls in, users can filter, sort, drill down, reformat, change chart types, change and add metrics and attributes, and so on. The ability to change and interact with charts while data loads is significant because it allows users to engage in speed-of-thought analysis against massive and live data sources. When a user takes their data exploration in a different direction, Zoomdata efficiently cancels previously running queries to conserve computing and network resources. For the inquisitive analyst, Zoomdata is a huge time saver and a pleasure to work with.

The value of the Zoomdata non-blocking user experience goes beyond comfort and convenience. Numerous studies report that the human attention span for most tasks is less than 10 seconds (and many suggest the limit is 3 seconds), so it’s important that the user is not left staring at a blank screen or a frustratingly mesmerizing spinner. The best and most effective data exploration happens when users can rapidly and freely explore the data. Traditional BI is not architected for such fluid interactions.

Hopefully, you’re starting to get a feel for why Zoomdata invested so much effort into creating a brand new, modern BI architecture. In our next post, we’ll look at the Zoomdata query engine microservice and push-down processing.

microservice Web application application Web Service Data (computing) Relational database

Published at DZone with permission of Ruhollah Farchtchi, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • The Quest for REST
  • Spring Boot Docker Best Practices
  • What Java Version Are You Running? Let’s Take a Look Under the Hood of the JDK!
  • Last Chance To Take the DZone 2023 DevOps Survey and Win $250! [Closes on 1/25 at 8 AM]

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: