Replies: 1 comment
-
|
Hey Evan, Thank you for the very detailed input. As of now, we do have the basic support for S3 backups/archiver, and although, we did consider implementing some sort of tiered storage already in the past, actually quite similar to your use case (persisting the data onto the disk to achieve low latency, and then flushing it into the object storage in the cloud), we decided to halt it, until we complete the most important features, such as ongoing zero-copy (de)serialization, io_uring along with the shared-nothing design, and finally, clustering support based on VSR. One of the main reasons that makes Iggy stand out across the other tools within the message streaming infrastructure space, is its performance, low latency, and the overall efficiency. We're already able to achieve the microsecond range for p999+ tail latencies (depending on the use case), and this will only get better with the upcoming improvements. Speaking on behalf of the core team, we do believe, that the need for the extremely fast message streaming infrastructure, where pushing the gigabytes of data per second, within the microsecond tail latency range, will matter a lot in the near future. If we were to focus mostly on the cloud storage at this point (which is actually quite a challenge to implement properly and would require at least the partial redesign of the existing storage layer), I can't think of many reasons why someone would someone use Iggy instead of the existing Kafka API-compatible tools (where some of these solely focus on this particular feature). The tiered/diskless storage will most likely happen at some point, but at least for now, it's not on our roadmap, as it doesn't give us much of an advantage. For example, flushing the data could be even done with the usage of connectors, but then being able to read the data, would be a different story. One would have to redesign the storage to support the remote reads, metadata, efficient batching, etc. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi, I'd like to share more about my use cases and patterns and some thoughts and ideas about Apache Iggy.
We have many clusters distributed across different regions, with each region having its own cluster. Within each cluster, we run various functions (mostly WASM functions, along with some workloads on each Kubernetes pod) that interact with the cluster. A typical stream processing workflow involves multiple connectors consuming data from various external systems (such as MQTT devices, Elasticsearch, CDC data, backend systems, etc.) into our cluster. This data then passes through many functions, possibly forming a DAG, and finally sends messages to external systems, primarily S3.
Our system characteristics or requirements are:
Our thoughts:
Based on these thoughts, we have some ideas:
I believe a cloud storage-based MQ would be very helpful for this case, and it's becoming a trend in the industry. Many MQ vendors have already implemented it. It would be better if we consider S3 from the start. Also, I'm not thinking that all these features be implemented within Iggy. We can let Iggy focus on its core functions, but I hope it can provide interfaces to support these additional features.
What do you think? I'm really excited to hear your thoughts! Thanks!
Beta Was this translation helpful? Give feedback.
All reactions