When to Use SwimOS: Top 3 Use Cases for App Developers
by Brad Johnson, on Oct 4, 2019 9:41:35 AM
Learning a new technology takes time and effort, so it’s important to make sure you’ve identified a good fit before you invest precious brain cycles. To help you determine whether swimOS is a good fit for your project, I wanted to present the three basic use cases for the swimOS platform. While swimOS is extremely flexible and can be utilized to build an infinite number of apps (for IoT, DevOps, analytics, AI/ML, etc), I’ve found that most projects the Swim.ai team takes on can be boiled down to one or more of the following three use cases; architecting stateful Web Agents, creating and managing streaming APIs, and building real-time UIs and dashboards.
Top 3 SwimOS Use Cases for App Developers
Take a look below and consider your own application needs as you read through. You’ll find that streaming and “near real-time” data sources are common to all three use cases. Whether you’re working with a few or a few thousand data streams, swimOS makes it easy to build stateful apps that filter, transform, aggregate, and act on real-time data streams.
Here are the Top 3 SwimOS Use Cases for app developers:
- Architecting Stateful Web Agents and Apps
Traditionally, it’s thought that stateless apps are less complex because state management is offloaded to a database as a single source of truth. SwimOS flips that notion on its head, by distributing state between “intelligent” Web Agents that continuously chatter in real-time with peers to ensure they’re all eventually consistent.
The good news is that developers never have to worry about state distribution, instead they only have to define relationships between Web Agents and configure APIs between Web Agents and external services. The result? An easy to setup framework for building stateful, distributed apps that can scale from prototype to production.
- Creating and Managing Streaming APIs
Most developers, when presented with a streaming data source, will ultimately transform it into a REST API. Doesn’t that seem absurdly inefficient, transforming a stream of information full context into a series of snapshots? SwimOS streaming APIs ensure that data streams remain in-motion, and Web Agents can filter filter, transform, aggregate, and act on real-time data as it streams. Developers can model even the most complex applications using the model of configurable Web Agents and swimOS’s streaming APIs.
SwimOS streaming APIs support bidirectional multiplexing over a single websocket connection, so thousands or millions of Web Agents can communicate across networks extremely efficiently. This makes swimOS an ideal fit for real-time distributed applications that must operate at massive scale.
- Building Real-Time UIs and Dashboards
D3 has a bunch of great visualizations, but they all assume you’re using a REST data source. What happens when you want to visualize a live data stream? SwimOS provides a Typescript UI toolkit and a Typescript UX toolkit with configurable and interactive gauges, pie charts, graphs, maps, and a MapBox integration.
Using these toolkits, developers can quickly integrate data streams and create native visualizations regardless of datatype. Quickly combine live data streams using Weg Agents and aggregate streams together to form truly real-time KPIs and dashboards. To see examples of swimOS real-time user interfaces in action, check out the Trafficware TidalWave app that monitors connected traffic infrastructure or our Transit Demo App which monitors public transit vehicles. The source code for each example is also available on GitHub.
Let us know what you're building using the open source swimOS platform. You can get started with swimOS here and make sure to STAR us on GitHub.