What is Event Streams for IBM Cloud?
At its core, Event Streams for IBM Cloud is a fast, scalable, fully managed event distribution and messaging service, based on Apache Kafka.
How does Event Streams for IBM Cloud work?
In Event Streams for IBM Cloud, applications send data by creating a message and sending it to a topic. These messages are maintained in a strongly ordered sequence and persisted to disk.
To receive messages, applications subscribe to a topic and choose to either receive all the topic's messages to a single consumer or to share the messages between a group of consumers.
Unlike traditional messaging systems, messages are not removed from the topic after they have been consumed. They remain persisted for a period of time determined on a per-topic basis. This design approach allows a set of application patterns that would have previously been harder to implement, such as event sourcing.
What can I do with Event Streams for IBM Cloud?
Event Streams for IBM Cloud is optimized for event ingestion into IBM Cloud and event stream distribution between your services and applications. As a result, it enables architects and developers to:
- Wire microservices together using open Apache Kafka protocol
- Publish event data to multiple applications to react in real time
- Connect event streams to analytics engines to realize powerful insights
- Archive event streams by sending to a longer term data store, for example, IBM Cloud Object Storage
What does Event Streams for IBM Cloud manage on my behalf?
Event Streams for IBM Cloud is a fully managed service that scales with you as your demands increase. You focus on building your best-of-breed app, and IBM manages the underlying event-driven platform for you.
How is Event Streams for IBM Cloud different?
Event Streams for IBM Cloud is based on the open technology, Apache Kafka, rather than a proprietary implementation.
This has a couple of key benefits:
- Applications have transportability because of the open nature of the protocol. You are able to write your applications once and run them against any Apache Kafka platforms you are using.
- You immediately benefit from innovation in the community, which represents one of the leading groups of event-driven applications, but with the confidence of consuming these innovations in a fully supported managed service.
What is Apache Kafka?
Apache Kafka forms the reliable event-driven core of Event Streams for IBM Cloud. This open source project provides a publish-subscribe messaging system and is designed to be fault-tolerant, providing a high-throughput, low-latency platform for handling real-time data feeds. These characteristics make it ideal for use in a cloud environment.
IBM developers have been actively participating in the Apache Kafka community since 2015. Today, Kafka is used for building real-time data pipelines and streaming apps by thousands of companies. It is horizontally scalable, fault-tolerant and has many years of production experience. Learn more at https://kafka.apache.org/.
What are some common architectural patterns and use cases?
When you are looking to increase the responsiveness of your apps, event-driven technologies can help. Event Streams for IBM Cloud is based on Apache Kafka, which enables you to add the following capabilities to your application architectures.
1. Publish and subscribe: Read and write streams of data like a messaging system.
2. Process: Write scalable stream processing applications that react to events in real time.
3. Store: Store streams of data safely in a distributed, replicated, fault-tolerant cluster.
In addition to core Kafka integrations, Event Streams for IBM Cloud offers improved bridging between key source clients via the IBM Watson IoT offering and data stores such as IBM Cloud Object Storage. Simplifying these IBM Cloud integrations speeds your delivery and improves the overall management of your app.
What about using Event Streams for IBM Cloud with serverless computing?
IBM offers a full range of compute options including bare metal, VMs, Kubernetes containers and functions. While functions, or FaaS, is sometimes referred to as serverless computing, serverless is more than just functions. It opens the door to event-driven architectures capable of responding to asynchronous events and workflows.
Quickly building and integrating multidevice apps today is critical for today's enterprise IT developers. Whatever the compute model behind these apps, integrating the pub sub and event workflows is easier when you use Event Streams for IBM Cloud to manage them across the architecture.
Today's serverless apps often emanate from IoT use case architectures and demand real-time streaming of information through the app or architecture. Event Streams for IBM Cloud, streaming analytics and functions services integrate easily across your architecture. In addition, Event Streams for IBM Cloud is integrated in the Watson IoT framework, helping you build out your event-driven architecture to the edge.
Where can I find information on key Event Streams for IBM Cloud concepts?
For a breakdown of the core concepts that apply to Event Streams for IBM Cloud, please see the following: https://console.bluemix.net/docs/services/MessageHub/messagehub010.html#about
Can I use it on premises or in other clouds?
You can use Event Streams for IBM Cloud within the IBM public cloud and connect from any platform or environment into Event Streams for IBM Cloud using the open protocol Kafka APIs that we support.
IBM's innovative cloud computing platform combines platform as a service (PaaS) with infrastructure as a service (IaaS) and includes a rich catalog of cloud services that can be easily integrated with PaaS and IaaS to build business applications rapidly.
IBM also offers an on-premises version of Event Streams. Visit https://www.ibm.com/cloud/event-streams.
Can I replicate data between regions?
We do not currently offer managed replication between Event Streams for IBM Cloud in different regions. However, you can either use open source tooling such as Mirror Maker to replicate your event streams between two clusters, or you can configure your application to write to two clusters simultaneously.
What finance models do you support?
For public cloud deployments choose between the Standard and Enterprise plans. The Standard plan offers shared access to a multi-tenant Event Streams cluster and is appropriate for event ingest and distribution capabilities. In addition, the Enterprise plan offers data isolation, guaranteed performance, and increased retention as well as exclusive access to a dedicated event streams cluster. Learn more: https://console.bluemix.net/docs/services/EventStreams/eventstreams085.html#plan_choose
Where can I learn more about Event Streams for IBM Cloud and event-driven apps?
Here are some popular resources:
- Learn more in this overview: https://www.ibm.com/cloud/message-hub
- See the IBM Cloud Catalog listing: https://console.bluemix.net/catalog/services/event-streams
- Technical documentation is available in the getting started guide: https://console.bluemix.net/docs/services/MessageHub/index.html#messagehub
- For samples, take a look in the public GitHub repository: https://github.com/ibm-messaging/event-streams-samples
Get started with Event Streams for IBM Cloud
Experience the benefits of Event Streams for IBM Cloud for yourself.