<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Fawaz Ghali on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/fawaz-ghali/</link><description>Articles written by Fawaz Ghali on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 15 Sep 2023 14:33:16 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/fawaz-ghali/index.xml" rel="self" type="application/rss+xml"/><item><title>Building Real-Time Applications to Process Wikimedia Streams</title><link>https://foojayio.github.io/website/today/building-real-time-applications-to-process-wikimedia-streams-using-kafka-and-hazelcast/</link><pubDate>Fri, 15 Sep 2023 14:33:16 +0000</pubDate><guid>https://foojayio.github.io/website/today/building-real-time-applications-to-process-wikimedia-streams-using-kafka-and-hazelcast/</guid><description>&lt;p&gt;&lt;strong&gt;In this tutorial, developers, solution architects, and data engineers can learn how to build high-performance, scalable, and fault-tolerant applications that react to real-time data using Kafka and Hazelcast.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We will be using Wikimedia as a real-time data source. Wikimedia provides various streams and APIs (Application Programming Interfaces) to access real-time data about edits and changes made to their projects.&lt;/p&gt;
&lt;p&gt;For example, this source provides a continuous stream of updates on recent changes, such as new edits or additions to Wikipedia articles. Developers and solution architects often use such streams to monitor and analyze the activity on Wikimedia projects in real-time or to build applications that rely on this data, like this tutorial.&lt;/p&gt;</description></item><item><title>Real-time Stream Processing with Hazelcast and Redpanda</title><link>https://foojayio.github.io/website/today/when-speed-matters-real-time-stream-processing-with-hazelcast-and-redpanda/</link><pubDate>Tue, 25 Jul 2023 09:33:27 +0000</pubDate><guid>https://foojayio.github.io/website/today/when-speed-matters-real-time-stream-processing-with-hazelcast-and-redpanda/</guid><description>&lt;p&gt;In this tutorial, we explore the powerful combination of Hazelcast and Redpanda to build high-performance, scalable, and fault-tolerant applications that react to real-time data.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://redpanda.com/" target="_blank" rel="noopener noreferrer"&gt;Redpanda&lt;/a&gt;
 is a streaming data platform designed to handle high-throughput, real-time data streams. Compatible with Kafka APIs, Redpanda provides a highly performant and scalable alternative to Apache Kafka. Redpanda&amp;rsquo;s unique architecture enables it to handle millions of messages per second while ensuring low latency, fault tolerance, and seamless scalability.&lt;/p&gt;</description></item><item><title>Boosting Similarity Search with Real-time Stream Processing</title><link>https://foojayio.github.io/website/today/boosting-similarity-search-with-real-time-stream-processing/</link><pubDate>Tue, 30 May 2023 12:42:35 +0000</pubDate><guid>https://foojayio.github.io/website/today/boosting-similarity-search-with-real-time-stream-processing/</guid><description>&lt;p&gt;The goal of similarity search and vector databases is to find similar results to the search query for unstructured data, such as text, images and videos. The unstructured data first is vectorised, and stored in a vector format. There are publicly available tools to create vectors from unstructured data, similarly, there are vector databases to store and perform similarity searches. This is important because of the rising popularity of Large Language Models (LLMs) and their combination with vector databases.&lt;/p&gt;</description></item><item><title>Enriching Kafka Applications with Contextual Data</title><link>https://foojayio.github.io/website/today/enriching-kafka-applications-with-contextual-data/</link><pubDate>Thu, 18 May 2023 15:11:22 +0000</pubDate><guid>https://foojayio.github.io/website/today/enriching-kafka-applications-with-contextual-data/</guid><description>&lt;p&gt;Developing high-performance large-stream processing applications is a challenging task.&lt;/p&gt;
&lt;p&gt;Choosing the right tool(s) is crucial to get the job done; as developers, we tend to focus on performance, simplicity, and cost.&lt;/p&gt;
&lt;p&gt;However, the cost becomes relatively high if we end up with two or more tools to do the same task.&lt;/p&gt;
&lt;p&gt;Simply put, you need to multiply development time, deployment time, and maintenance costs by the number of tools.&lt;/p&gt;
&lt;h2 id="h2-0-kafka"&gt;Kafka&lt;/h2&gt;
&lt;p&gt;Kafka is great for event streaming architectures, continuous data integration (ETL), and messaging systems of record (database).&lt;/p&gt;</description></item><item><title>How to Build and Deploy a Real-time Cloud-based Logging System</title><link>https://foojayio.github.io/website/today/how-to-build-and-deploy-a-real-time-cloud-based-logging-system/</link><pubDate>Fri, 24 Mar 2023 15:04:51 +0000</pubDate><guid>https://foojayio.github.io/website/today/how-to-build-and-deploy-a-real-time-cloud-based-logging-system/</guid><description>&lt;p&gt;Logs and traces generated by applications are valuable sources of information that can help detect issues and improve performance.&lt;/p&gt;
&lt;p&gt;However, they are often treated separately from other data, even though they are no different from the data an application works with.&lt;/p&gt;
&lt;p&gt;In this tutorial, we will explore a different approach: treating logs and traces as part of a scalable cloud storage repository that can be analysed with the same techniques used for big data.&lt;/p&gt;</description></item><item><title>Failover Client with the Hazelcast Viridian Serverless</title><link>https://foojayio.github.io/website/today/how-to-create-a-failover-client-using-the-hazelcast-viridian-serverless/</link><pubDate>Fri, 24 Mar 2023 14:55:42 +0000</pubDate><guid>https://foojayio.github.io/website/today/how-to-create-a-failover-client-using-the-hazelcast-viridian-serverless/</guid><description>&lt;p&gt;Failover is an important feature of systems that rely on near-constant availability.&lt;/p&gt;
&lt;p&gt;In Hazelcast, a failover client automatically redirects its traffic to a secondary cluster when the client cannot connect to the primary cluster.&lt;/p&gt;
&lt;p&gt;Consider using a failover client with WAN replication as part of your disaster recovery strategy.&lt;/p&gt;
&lt;p&gt;In this tutorial, you&amp;rsquo;ll update the code in a Java client to automatically connect to a secondary, failover cluster if it cannot connect to its original, primary cluster.&lt;/p&gt;</description></item><item><title>How to Get Started with the Hazelcast Viridian Serverless</title><link>https://foojayio.github.io/website/today/streaming-real-time-data-on-the-hazelcast-viridian-serverless/</link><pubDate>Fri, 10 Mar 2023 10:28:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/streaming-real-time-data-on-the-hazelcast-viridian-serverless/</guid><description>&lt;p&gt;In this tutorial, you&amp;rsquo;ll learn how to build real-time streaming applications with the Hazelcast Viridian Serverless using SQL.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ll also learn how to build a materialized view from streaming data and contextual data in Hazelcast.&lt;/p&gt;
&lt;p&gt;Streaming data is data that is continuously generated in small sizes.&lt;/p&gt;
&lt;p&gt;Streaming data includes a wide variety of sources such as retail purchases, financial trades, or telemetry from connected vehicles.&lt;/p&gt;
&lt;p&gt;This data isn&amp;rsquo;t usually useful by itself because of its size.&lt;/p&gt;</description></item><item><title>How to Get Started with the Hazelcast Viridian Serverless</title><link>https://foojayio.github.io/website/today/how-to-get-started-with-the-hazelcast-viridian-serverless/</link><pubDate>Wed, 22 Feb 2023 08:13:32 +0000</pubDate><guid>https://foojayio.github.io/website/today/how-to-get-started-with-the-hazelcast-viridian-serverless/</guid><description>&lt;p&gt;Hazelcast Serverless means that Hazelcast manages your Cloud infrastructure for you.&lt;/p&gt;
&lt;p&gt;Each Viridian Serverless cluster is an independent deployment of Hazelcast Platform in a Kubernetes container.&lt;/p&gt;
&lt;p&gt;This design guarantees resource isolation, prevents resource stealing, and provides isolated network access.&lt;/p&gt;
&lt;p&gt;Viridian Serverless clusters come in two types:1) Development: Capped storage.&lt;/p&gt;
&lt;p&gt;You can store at most 1 GiB of data; and 2) Production: Uncapped storage.&lt;/p&gt;
&lt;p&gt;The cluster scales as you add or remove data. In this tutorial, you&amp;rsquo;ll learn how to connect a client to a cluster and use SQL to query data in the cluster.&lt;/p&gt;</description></item><item><title>Announcing Real-time Stream Processing Unconference</title><link>https://foojayio.github.io/website/today/announcing-real-time-stream-processing-unconference/</link><pubDate>Tue, 07 Feb 2023 07:20:06 +0000</pubDate><guid>https://foojayio.github.io/website/today/announcing-real-time-stream-processing-unconference/</guid><description>&lt;p&gt;I&amp;rsquo;m happy to share &lt;a href="https://hazelcast.com/lp/unconference/" target="_blank" rel="noopener noreferrer"&gt;Hazelcast will be kicking off 2023&lt;/a&gt;
 by hosting #RTSPUnconf to connect with community members and industry experts on the Future of Real-Time Stream Processing.&lt;/p&gt;
&lt;p&gt;Interested in joining our Stream Processing Fundamentals workshop in-person at CodeNode in London? Connect with other developers and receive a digital badge.&lt;/p&gt;
&lt;p&gt;Sign-up here: &lt;a href="https://hazelcast.com/lp/unconference/" target="_blank" rel="noopener noreferrer"&gt;https://hazelcast.com/lp/unconference/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why Attend:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gain valuable insight into the future of real-time stream processing from industry experts and peers&lt;/li&gt;
&lt;li&gt;Network and connect with like-minded professionals in the community through networking opportunities&lt;/li&gt;
&lt;li&gt;To learn and enhance your skills in building real-time stream processing applications&lt;/li&gt;
&lt;li&gt;Have an amazing time with new and old friends from the community!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Are you interested in speaking or joining the Real-Time Stream Processing Roundtable?&lt;/p&gt;</description></item><item><title>Real-time Stream Processing with Hazelcast and StreamNative</title><link>https://foojayio.github.io/website/today/real-time-stream-processing-with-hazelcast-and-streamnative/</link><pubDate>Wed, 01 Feb 2023 09:09:04 +0000</pubDate><guid>https://foojayio.github.io/website/today/real-time-stream-processing-with-hazelcast-and-streamnative/</guid><description>&lt;h2 id="h2-0-introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;One of the most useful features of real-time stream processing is to combine the strengths and advantages of various technologies to provide a unique developer experience and an efficient way of processing data in real time at scale.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hazelcast&lt;/strong&gt; is a real-time distributed computation and storage platform for consistently low latency queries, aggregation and stateful computation against real-time event streams and traditional data sources.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apache Pulsar&lt;/strong&gt; is a real-time multitenant geo-replicated distributed pub-sub messaging and streaming platform for real-time workloads handling millions of events per hour.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, real-time stream processing is not an easy task, especially when combining multiple live streams with large volumes of data stored in external data storages to provide context and instant results.&lt;/p&gt;</description></item></channel></rss>