Apache Kafka is an open-source stream processing platform developed by the Apache Software Foundation written in Scala and Java. The Kafka event streaming platform is used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
N/A
EDB Postgres Advanced Server
Score 9.7 out of 10
N/A
The EDB Postgres Advanced Server is an advanced deployment of the PostgreSQL relational database with greater features and Oracle compatibility, from EnterpriseDB headquartered in Bedford, Massachusetts.
Apache Kafka is well-suited for most data-streaming use cases. Amazon Kinesis and Azure EventHubs, unless you have a specific use case where using those cloud PaAS for your data lakes, once set up well, Apache Kafka will take care of everything else in the background. Azure EventHubs, is good for cross-cloud use cases, and Amazon Kinesis - I have no real-world experience. But I believe it is the same.
It's great if you are using or wish to use PostgreSQL and need the added performance optimization, security features and developer and DBA tools. If you need compatibility with Oracle it's a must-have. There are many developer features that greatly assist dev teams in integrating and implementing complex middleware. It's great for optimizing complex database queries as well as for scaling. I would recommend Postgres Plus Advanced Server for any software development team that is hitting the limit of what PostgreSQL is capable of and wants to improve performance, security, and gain extra developer tools.
Really easy to configure. I've used other message brokers such as RabbitMQ and compared to them, Kafka's configurations are very easy to understand and tweak.
Very scalable: easily configured to run on multiple nodes allowing for ease of parallelism (assuming your queues/topics don't have to be consumed in the exact same order the messages were delivered)
Not exactly a feature, but I trust Kafka will be around for at least another decade because active development has continued to be strong and there's a lot of financial backing from Confluent and LinkedIn, and probably many other companies who are using it (which, anecdotally, is many).
PPAS Oracle compatibility, especially the PL/SQL syntax, has made migrating database-tier code very simple. Most Oracle packages do not need to be changed at all and those that do are generally for simple reasons like a reserved word in PPAS that is allowed in Oracle.
PPAS xDB, the multi-master replication tool, is simple and - most important - does not break with network or other interruptions. We have been able to configure and forget, which our customers could never do with other multi-master tools.
Most people had no idea that PPAS and PostgreSQL have full CRUD support for JSON. They think you need a specialized product and/or that JSON is read-only. Every organization that I have worked with is evaluating adding JSON to their relational model.
Sometimes it becomes difficult to monitor our Kafka deployments. We've been able to overcome it largely using AWS MSK, a managed service for Apache Kafka, but a separate monitoring dashboard would have been great.
Simplify the process for local deployment of Kafka and provide a user interface to get visibility into the different topics and the messages being processed.
Learning curve around creation of broker and topics could be simplified
Documentation is excellent but spread out across many resources and can take a while to wade through—would benefit from having more intro level, getting started guides for various languages.
Ruby support is excellent but more Ruby examples and beginner-level documentation would be nice.
It is sometimes hard to find a community of users on StackOverflow so a larger community, and a dedicated forum with active members to answer questions and work through issues would be nice.
Apache Kafka is highly recommended to develop loosely coupled, real-time processing applications. Also, Apache Kafka provides property based configuration. Producer, Consumer and broker contain their own separate property file
Support for Apache Kafka (if willing to pay) is available from Confluent that includes the same time that created Kafka at Linkedin so they know this software in and out. Moreover, Apache Kafka is well known and best practices documents and deployment scenarios are easily available for download. For example, from eBay, Linkedin, Uber, and NYTimes.
I used other messaging/queue solutions that are a lot more basic than Confluent Kafka, as well as another solution that is no longer in the market called Xively, which was bought and "buried" by Google. In comparison, these solutions offer way fewer functionalities and respond to other needs.
PPAS proved better for our customer's data-centric apps than Oracle in all but a few edge cases (encryption at rest and multi-TB database-tier backups) because it is simpler to install/maintain, runs nearly all Oracle-syntax SQL as well as ANSI SQL. PPAS has much more JSON capabilities (full CRUD vs. read-only in Oracle), simpler geospatial, simpler / more stable replication and datatypes that match developer expectations, such as BOOLEAN and ENUMs.
Positive: Get a quick and reliable pub/sub model implemented - data across components flows easily.
Positive: it's scalable so we can develop small and scale for real-world scenarios
Negative: it's easy to get into a confusing situation if you are not experienced yet or something strange has happened (rare, but it does). Troubleshooting such situations can take time and effort.
Postgres Plus Advanced Server is quite complex and may take longer to implement certain things than simply using PostgreSQL depending on developer familiarity with the platform.
Getting up to speed can be daunting so again, there is an upfront cost in time spent learning the platform, besides the potential for extra time spent on a feature-by-feature basis.
The cost of Postgres Plus Advanced Server should be weighed against simply using PostgreSQL to decide which is the best solution for your business needs.