Bu makalede Cloud Pub/Sub(Publish/Subscribe) servisine göz atacağız. Basit bir asenkron mesajlama sistemi tasarlayıp bunu GCP Pub/Sub ile gerçekleyeceğiz. Ayrıca aynı kategorideki diğer servisler ile karşılaştırmasını yapacağız.

Photo by dference on Pixabay

Pub/Sub client ile server bağımlılığını ortadan kaldıran event-driven ve asenkron bir mesajlama servisidir. Pub/Sub ile bu iletimi gerçek zamanlı ve yüksek tutarlılıkla gerçekleyebiliriz.

Terminoloji

  • Message: İletilecek olan datadır
  • Mesajlaşma: Verinin server’da üretilip client’a iletilmesidir.
  • Publisher: Mesajı gönderen her bir servisdir
  • Topic: Publisher’lar tarafından her bir mesaj bir topic’e gönderilir. Mesajların toplanma yeridir.
  • Subscriber: Topic’e subscribe olan servislerdir. Topic’e gelen her bir mesaj subscribe olan servislere iletilir.
  • Subscription: Mesajın bir topic’den subscriber’lara iletimidir.

Pull Subscription: Belirli zaman aralıklarında topic dinlenir. Topic’e bir mesaj gelirse, subscriber mesajı topic’den çeker.

Push Subscription: Bir HTTP endpoint çağırılır.

  • Message Attribute: Publisher’ın message içinde tanımlayabileceği key-value çiftleridir…


In this article, we will take a look at Cloud Pub/Sub(Publish/Subscribe). We will design an asynchronous messaging system by using Cloud Pub/Sub.

Photo by dference on Pixabay

Pub/Sub is an asynchronous and event-driven messaging service. Pub/Sub offers real-time message delivery consistent performance. Another important advantage decouples your service and client sides. We will glance over later on.

Terminology

  • Message: The data that will be delivered.
  • Messaging: Creation of data at the server and delivering to a client.
  • Publisher: The service that will create and send the message.
  • Topic: Every created message by publishers is sent to a topic. In a sense, It is a gathering place for data.
  • Subscriber: The services that subscribe to a topic. The messages that came to a topic are delivered to subscribers.
  • Subscription…


Accept that, documentation often is a burden for developers. On the other hand, it is one of the most important parts in many aspects. In this post, I will try to show these aspects with real examples. These tips can be applied to documents(docs) that are prepared for developers, scrum masters, or product owners mainly, not for customers. After this post, you will be able to write more effective docs.

<span>Photo by <a href=”https://unsplash.com/@nicolasthomas?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Nicolas Thomas</a> on <a href=”https://unsplash.com/s/photos/ink?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span>
<span>Photo by <a href=”https://unsplash.com/@nicolasthomas?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Nicolas Thomas</a> on <a href=”https://unsplash.com/s/photos/ink?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span>
Photo by Nicolas Thomas on Unsplash

There are no sharp rules for writing a good doc but some rule sets can be used. In that sense, we are based on the Google way but of course with some additional differences.

Pros

  • New developers can easily explore the existing processes
  • Existing developers can find the information on what they are looking for
  • If a topic is known by only one person, documentation would reduce this dependency
  • The author can reinforce the subject that he/she writes.

Cons

  • Usually, developers don’t like writing docs
  • Docs always need to be kept up to date

Let’s talk about tips!

Good Doc

# The author should provide answers to these questions for a good doc

  • Who is the target…


Aim of the project is using Objectify as a persistance API in a Spring Boot project. First we used a Data Store Emulator for local development.Now, I am going to deploy it to a Cloud Run compute service as a real cloud project.

Photo by Zorgist on Pixabay

Let’s remember first part. I created a spring boot project and used objectify for persistance level. I used data store emulator firstly in our local environment. Today we will deploy it to Cloud Run compute service. I assume that you already have basic Google Cloud and Spring Boot knowledge. I will not talk about Objectify, Spring Boot or Cloud Run deeply. You can follow the source code from here.

What is Cloud Run?
Cloud Run is a compute platform that enables you to run containers. Pricing and speed of deployment are striking features. …


Aim of the project is using Objectify as a persistance API in a Spring Boot project. First we use a Data Store Emulator for local development which is the topic of this assay. Deploy it to a Cloud Run compute service as a real cloud project is second part and topic of the second assay.

Photo by Claus Norgaard on Pixabay

I assume that you already have basic Google Cloud and Spring Boot knowledge. I will not talk about Objectify, Spring Boot or GCP deeply. I just want to develop a basic project quickly and try to explain how you can do it. So, we have a spring boot project which has various endpoints. We will make some Datastore transactions by using these endpoints. Additionally, you can use this project as a MVC template as well. You can follow the source code from here.

What is Objectify?
Objectify is defined in its own Github page as ‘ a third party JAVA…


Bu kavramlar genelde anlaşılması, ayırt edilmesi zor bir hale gelebiliyor. Ben de yakın zamana kadar karıştırdığımı ve içeriklerini öğrendiğimde yanlış kullandığımı farkettim.

Bu yazımda bu terimleri, java dili özelinde genelden özele doğru detaylandırmaya çalışacağım.

Web Server: önce bu terimi kavramamız gerekiyor. Temel olarak bilinmesi gereken ana kavram bu aslında. Çünkü istemciden gelen istek ilk olarak buraya gelir.

Eğer istemcinin istediği cevap statik html,css yada bir png dosyası gibi değişmeyen içerikler olsaydı, web server’lar internet alemi için yeterli olacaktı. Web server gelen isteklere statik cevaplar veren bir teknolojidir. Server-side programlar, DB transaction’lar yada dinamik HTML içerikler yoktur.

Java dünyası için en…


Gazap Üzümleri, Bölüm 14

Batı toprakları, başlayan değişim altında tedirgin. Batı devletleri fırtınadan önceki atlar gibi tedirgin. Büyük toprak sahipleri, sinirli. Bir değişme olduğunu sezmekte, ama değişmenin ne olduğunu bilmemekteler. Büyük toprak sahipleri ilk önlerine gelen şeye saldırıyorlar. Hükümet yetkilerinin genişletilmesine, işçi birliğinin kuvvetlenmesine; yeni vergilere, planlara kızıyorlar ama, bunlar neden değil, sonuç; neden değil, sonuç… Neden, derinde ve basit: Neden, midedeki açlık. Milyonlarca kere büyütülmüş açlık; bir tek insandaki açlığın, neşe açlığının ve biraz güven açlığının, milyonlarca kere büyütülmüşü. Gelişmek, çalışmak, yaratmak isteyen kasların ve kafaların milyonlarca kere büyütülmüşü. İnsanın en son belirli, kesin fonksiyonu… Çalışmak için ağrıyan kaslar…


We use Java 7 for our codes and decided to use Java 8. With this passing, i see that we can use functional programming advantages and i started to learn Lambda expressions. If you are decided to write java lambda expressions in your code, like me, you can confuse about the syntax. Lambda expression syntax is different from usual java code form. Code below is an example;

IHeyLambda<Integer> factorial = (n) -> {
int result = 1;
for (int i = 1; i <= n; i++)
result = i * result;
System.out.println("result:"+result);
return result;
};

ali guvenbas

java and angular developer, google cloud, reader, traveller

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store