<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alexandre DUVAL, Author at Clever Cloud</title>
	<atom:link href="https://www.clever.cloud/blog/author/alexandre-duvalclever-cloud-com/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>From Code to Product</description>
	<lastBuildDate>Fri, 27 Oct 2023 10:20:31 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://cdn.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>Alexandre DUVAL, Author at Clever Cloud</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Apache Pulsar Public Beta Release</title>
		<link>https://www.clever.cloud/blog/engineering/2021/10/05/apache-pulsar-public-beta-release/</link>
		
		<dc:creator><![CDATA[Alexandre DUVAL]]></dc:creator>
		<pubDate>Tue, 05 Oct 2021 11:32:27 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/?p=3279</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="pulsar 1" decoding="async" fetchpriority="high" srcset="https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1.png 1400w, https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p>It's a big day for queuing and streaming enthusiasts today. Our engineering team is proud to release Apache Pulsar as an add-on on Clever Cloud in public beta!

<span id="more-3279"></span>

Apache Pulsar is a distributed messaging and streaming platform based on a "publish-subscribe" model. Clever Cloud Pulsar add-on provides one Pulsar namespace, with almost all management rights.
<h2>Common use cases</h2>
<ul>
 	<li><b>Replicating data among databases</b> using Pulsar IO is commonly used to distribute change events from databases.</li>
 	<li><b>Parallel processing and workflows.</b> You can efficiently distribute a large number of tasks among multiple workers (compressing text files, sending email notifications).</li>
 	<li><b>Data streaming from IoT devices.</b> For example, a residential sensor can stream data to backend servers.</li>
 	<li><b>Refreshing distributed caches.</b> For example, an application can publish invalidation events to update the IDs of objects that have changed.</li>
 	<li><b>Real-time event distribution.</b> Events, raw or processed, may be made available to multiple applications across your team and organization for real-time processing.</li>
</ul>
<h2>Biscuit token support</h2>
At Clever Cloud, we are working on the <a href="https://www.clever.cloud/blog/engineering/2021/04/12/introduction-to-biscuit/">Biscuit token</a>, the foundation for our authorization systems. Consequently, we open-sourced our <a href="https://github.com/CleverCloud/biscuit-pulsar/commits/master">Biscuit token for Pulsar implementation</a> which is directly pluggable to the Pulsar authentication and authorization system.

This way, we can provide a Pulsar namespace with token-based authorizations. A generated access token enables you to operate your Pulsar namespace and its topics directly using the Pulsar Admin REST API.

Using the power of Biscuit tokens, you can also attenuate your Biscuit token and create a new token that is only able to consume a single topic or multiple topics matching a regex. <a href="https://www.clever.cloud/developers/deploy/addon/pulsar/#authorization">Here</a> is an example with a topic prefix.

The rights management we support is documented <a href="https://www.clever.cloud/developers/deploy/addon/pulsar/#operations">here</a>.
<h2>Usage</h2>
We advise you to use <a href="https://github.com/streamnative/pulsarctl">pulsarctl</a> provided by StreamNative. Here is an example to list topics in your namespace:
<pre><code class="language-bash">pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces topics $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE</code></pre>
As Biscuit is a token, you can use <code>AuthenticationToken("")</code> provided by clients libraries to authenticate to our clusters without any tweak.
<ul>
 	<li>C++ client</li>
 	<li>C# client</li>
 	<li>Go client</li>
 	<li>Java client (<a href="https://www.clever.cloud/developers/deploy/addon/pulsar/#java-example">example)</a></li>
 	<li>Node.js client</li>
 	<li>Python client</li>
 	<li>Rust client (<a href="https://www.clever.cloud/developers/deploy/addon/pulsar/#rust-example">example</a>)</li>
 	<li>WebSocket client</li>
</ul>
<h2>Storage policies</h2>
The Pulsar add-on comes with default retention policies and offload policies.
<h3>Retention policies</h3>
A freshly created Pulsar add-on has infinite retention policies, you can change it using:
<pre><code class="language-bash"># Example to set retention of namespace to 2 weeks and/or 100 GB
pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces set-retention $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE --time 2w --size 100G</code></pre>
<h3>Offload policies (cold storage)</h3>
Each <a href="https://www.clever.cloud/developers/deploy/addon/pulsar/">Pulsar add-on</a> is provided with a hidden <a href="https://www.clever.cloud/developers/deploy/addon/cellar/">Cellar add-on</a> (object-storage add-on) used as a target for offloading data to cold storage. These policies are deactivated by default; you can enable offloading using:
<pre><code class="lang-bash"># Example to set offload to run when hot storage is &gt; 10G and put data to Cellar add-on as cold storage
pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces set-offload-treshold $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE 10G</code></pre>
Considering the previous retention of 100GB and the offload threshold of 10G. You will always have 10GB in the hot storage (Apache BookKeeper) and 90GB in Cellar.

We will provide in the add-on dashboard the current storage usage of your hot and cold storage.
<h2>Pricing</h2>
Today, the pricing is in beta, meaning that it is <strong>subject to change</strong> depending on our client's usages.
Please try the calculator to simulate the cost of your usage.

<a href="https://www.clever.cloud/developers/deploy/addon/pulsar/">Learn more on the Clever Cloud documentation</a>]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="pulsar 1" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1.png 1400w, https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2021/09/pulsar-1-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p>It's a big day for queuing and streaming enthusiasts today. Our engineering team is proud to release Apache Pulsar as an add-on on Clever Cloud in public beta!

<span id="more-3279"></span>

Apache Pulsar is a distributed messaging and streaming platform based on a "publish-subscribe" model. Clever Cloud Pulsar add-on provides one Pulsar namespace, with almost all management rights.
<h2>Common use cases</h2>
<ul>
 	<li><b>Replicating data among databases</b> using Pulsar IO is commonly used to distribute change events from databases.</li>
 	<li><b>Parallel processing and workflows.</b> You can efficiently distribute a large number of tasks among multiple workers (compressing text files, sending email notifications).</li>
 	<li><b>Data streaming from IoT devices.</b> For example, a residential sensor can stream data to backend servers.</li>
 	<li><b>Refreshing distributed caches.</b> For example, an application can publish invalidation events to update the IDs of objects that have changed.</li>
 	<li><b>Real-time event distribution.</b> Events, raw or processed, may be made available to multiple applications across your team and organization for real-time processing.</li>
</ul>
<h2>Biscuit token support</h2>
At Clever Cloud, we are working on the <a href="https://www.clever.cloud/blog/engineering/2021/04/12/introduction-to-biscuit/">Biscuit token</a>, the foundation for our authorization systems. Consequently, we open-sourced our <a href="https://github.com/CleverCloud/biscuit-pulsar/commits/master">Biscuit token for Pulsar implementation</a> which is directly pluggable to the Pulsar authentication and authorization system.

This way, we can provide a Pulsar namespace with token-based authorizations. A generated access token enables you to operate your Pulsar namespace and its topics directly using the Pulsar Admin REST API.

Using the power of Biscuit tokens, you can also attenuate your Biscuit token and create a new token that is only able to consume a single topic or multiple topics matching a regex. <a href="https://www.clever.cloud/developers/deploy/addon/pulsar/#authorization">Here</a> is an example with a topic prefix.

The rights management we support is documented <a href="https://www.clever.cloud/developers/deploy/addon/pulsar/#operations">here</a>.
<h2>Usage</h2>
We advise you to use <a href="https://github.com/streamnative/pulsarctl">pulsarctl</a> provided by StreamNative. Here is an example to list topics in your namespace:
<pre><code class="language-bash">pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces topics $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE</code></pre>
As Biscuit is a token, you can use <code>AuthenticationToken("")</code> provided by clients libraries to authenticate to our clusters without any tweak.
<ul>
 	<li>C++ client</li>
 	<li>C# client</li>
 	<li>Go client</li>
 	<li>Java client (<a href="https://www.clever.cloud/developers/deploy/addon/pulsar/#java-example">example)</a></li>
 	<li>Node.js client</li>
 	<li>Python client</li>
 	<li>Rust client (<a href="https://www.clever.cloud/developers/deploy/addon/pulsar/#rust-example">example</a>)</li>
 	<li>WebSocket client</li>
</ul>
<h2>Storage policies</h2>
The Pulsar add-on comes with default retention policies and offload policies.
<h3>Retention policies</h3>
A freshly created Pulsar add-on has infinite retention policies, you can change it using:
<pre><code class="language-bash"># Example to set retention of namespace to 2 weeks and/or 100 GB
pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces set-retention $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE --time 2w --size 100G</code></pre>
<h3>Offload policies (cold storage)</h3>
Each <a href="https://www.clever.cloud/developers/deploy/addon/pulsar/">Pulsar add-on</a> is provided with a hidden <a href="https://www.clever.cloud/developers/deploy/addon/cellar/">Cellar add-on</a> (object-storage add-on) used as a target for offloading data to cold storage. These policies are deactivated by default; you can enable offloading using:
<pre><code class="lang-bash"># Example to set offload to run when hot storage is &gt; 10G and put data to Cellar add-on as cold storage
pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces set-offload-treshold $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE 10G</code></pre>
Considering the previous retention of 100GB and the offload threshold of 10G. You will always have 10GB in the hot storage (Apache BookKeeper) and 90GB in Cellar.

We will provide in the add-on dashboard the current storage usage of your hot and cold storage.
<h2>Pricing</h2>
Today, the pricing is in beta, meaning that it is <strong>subject to change</strong> depending on our client's usages.
Please try the calculator to simulate the cost of your usage.

<a href="https://www.clever.cloud/developers/deploy/addon/pulsar/">Learn more on the Clever Cloud documentation</a>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
