Deploy customized, portable IoT solutions including infrastructure and services to any cloud that supports Kubernetes.
Photo by Pierre-Axel Cotteret
Prevent your IoT solution from being tied to a single cloud provider. SiteWhere embraces the cloud-native ecosystem of Kubernetes and may be deployed to any provider that supports Kubernetes. Benefit from the huge ecosystem of projects already running on Kubernetes.
The core libraries, microservices and tooling for SiteWhere are made available as open source under the Apache 2.0 license. Understand the code running your IoT platform rather than using a "black box" system offered by many cloud providers. SiteWhere embraces the CNCF ecosystem and leverages technologies such as Kubernetes and Helm that are the core of the movement.
SiteWhere leverages many of the technologies used by the largest technology companies on the internet. An event pipeline based on Apache Kafka Streams moves device event data from sources such as MQTT and CoAP, stores it in highly-scalable time series databases, and allows data to be integrated with many of the most popular third-party systems.
Photo by NASA
SiteWhere is completely cloud-native, using only accepted Kubernetes patterns with no implementation-specific dependencies
All SiteWhere features are implemented as microservices running on a shared infrastructure. Each service may be scaled independently and has own configuration, data processing and persistence.
Data is routed from external sources into a Kafka Streams pipeline which reliably ships data between microservices for processing
Microservices are integrated with Istio Service Mesh for advanced control of ingress networking and inter-microservice communication. This approach supports sophisticated routing rules and cross-cutting features such as distributed tracing.
API calls between microservices are intelligently cached to maximize performance when there are inter-microservice depenedencies
SiteWhere delegates identity management to Keycloak, allowing for single sign-on support in applications that use SiteWhere. SiteWhere instances may share realms or may be isolated for separate users/roles per instance.
Devices and their relationships are captured in a comprehensive data model which is accessible via REST APIs and exposed via clients for Java, JavaScript, and other languages
Inbound device messages may be accepted via MQTT, CoAP, HTTP/REST, WebSockets, and more. Custom message parsing and complex event batching can be supported. Each system tenant can have different event source configurations.
SiteWhere supports integration with many external systems out-of-the-box including AWS SQS, Azure Event Hubs, MQTT brokers, Apache Solr, and many more
Each tenant within a SiteWhere instance has its own persistence stores and data pipeline. This allows for data isolation between tenants and configuration of performance settings on a per-tenant basis.