Mukul HowaleandGitHub a563344a35 feat: microservice messaging pattern (#3564)
* Initialize microservices-messaging Spring Boot project

Add initial project structure for microservices-messaging using Spring Boot. Includes Maven configuration with dependencies for Kafka, Lombok, and testing, as well as main application, test class, and application properties.

* Initialize microservices messaging pattern

1. Added initial project structure for demonstrating the microservices messaging pattern.
2. Introduced service stubs (OrderService, InventoryService, PaymentService, NotificationService), a Message and MessageBroker class, and a main App entry point.
3. Added README and logging configuration.

* Implement Message and MessageBroker classes

1. Added the Message class with unique ID, content, and timestamp fields, and a toString method.
2. Implemented the MessageBroker class to support topic-based publish-subscribe messaging, including subscriber management, message publishing, and logging.

* Implement messaging pattern for microservices

1. Added message handling logic to InventoryService, PaymentService, and NotificationService.
2. OrderService now publishes order events to a MessageBroker, and App demonstrates the messaging workflow. 3. Each service processes relevant order events and logs actions for demonstration purposes.

* Expand microservices messaging docs and add diagrams

1. Enhanced the README with detailed explanations, real-world examples, Java code samples, and references for the Microservices Messaging pattern.
2. Added flowchart and sequence diagram images to illustrate the pattern.

* Refactor to use Kafka for microservices messaging

1. Added Apache Kafka for asynchronous communication between services.
2. Added KafkaMessageProducer and KafkaMessageConsumer classes, updated service implementations and main application logic to use Kafka, and adjusted the Maven configuration to include Kafka and Jackson dependencies.
3. Updated and moved all classes to the com.iluwatar.messaging package, improved documentation, and updated diagrams to reflect the new architecture.

* Add unit tests and license headers to messaging module

1. Added comprehensive unit tests for App, InventoryService, KafkaMessageConsumer, KafkaMessageProducer, Message, NotificationService, OrderService, and PaymentService.
2. Added MIT license headers to all main source files and logback.xml.
3. Updated pom.xml to include JUnit Jupiter as a test dependency.

* Refactor and simplify service and Kafka test classes

1. Simplified unit tests for InventoryService, NotificationService, and PaymentService by removing null content tests and adding instantiation checks.
2. Refactored KafkaMessageConsumerTest and KafkaMessageProducerTest to avoid requiring a real Kafka instance, focusing on class structure and method existence instead of integration behavior.

* Add microservices-messaging module and run scripts

Introduce the microservices-messaging module and register it in the root pom.xml. Add docker-compose.yml to run a local Kafka (confluentinc/cp-kafka) with a healthcheck, plus run-app.ps1 and run-app.sh helper scripts that start Kafka if needed and then launch the application. Update the module README with usage instructions. Also remove a duplicated junit-jupiter-api test dependency from the module pom to rely on project defaults.

* microservices-messaging: code style and Lombok

Add Lombok as a provided dependency and apply formatting/refactoring across the microservices-messaging module. Changes include import reordering, Javadoc and logging formatting, consistent lambda/try/catch indentation, small Kafka consumer/producer refinements (Duration/Properties usage and callback formatting), Message class tweaks (@Getter, JSON ctor and toString formatting) and EOF/newline fixes. Unit tests were also reformatted for consistency. These are non-functional style and readability improvements; no behavior changes intended.

* Make Kafka producer/consumer testable

Refactor KafkaMessageProducer and KafkaMessageConsumer to depend on the Producer/Consumer interfaces and add constructors that accept mockable instances. Extract default producer/consumer creation into factory methods so tests can inject MockProducer/MockConsumer. Update tests across the microservices-messaging module to use MockProducer/MockConsumer, add more meaningful assertions, error/interrupt handling tests, and simplify AppTest. These changes improve unit testability and remove the need for a running Kafka instance while preserving runtime behavior.

* Format test Javadoc and reorder imports

Normalize Javadoc formatting and reorder static JUnit imports for consistency in messaging tests. Converted multi-line test Javadocs to single-line comments and adjusted import ordering in the following files:

- microservices-messaging/src/test/java/com/iluwatar/messaging/KafkaMessageConsumerTest.java
- microservices-messaging/src/test/java/com/iluwatar/messaging/KafkaMessageProducerTest.java
- microservices-messaging/src/test/java/com/iluwatar/messaging/OrderServiceTest.java

No functional changes.

* Add MIT headers and exclude .ps1 from license checks

Add MIT license headers to microservices-messaging/docker-compose.yml, run-app.ps1 and run-app.sh to ensure license text is present in these scripts. Update root pom.xml to exclude PowerShell (*.ps1) files from the license plugin checks so those files are not processed by the license rule.

* Add Kafka docker service to CI workflows

Bring up Kafka for tests in CI and PR workflows. Adds steps to run docker compose for microservices-messaging, poll Kafka readiness (up to 20 retries), and always tear down with docker compose down. Enables Maven tests that depend on Kafka. Affects .github/workflows/maven-ci.yml and .github/workflows/maven-pr-builder.yml.

* Use kafka-topics instead of kafka-topics.sh

Replace calls to kafka-topics.sh with kafka-topics in CI workflows and the Docker Compose healthcheck. Updated .github/workflows/maven-ci.yml, .github/workflows/maven-pr-builder.yml, and microservices-messaging/docker-compose.yml to use the kafka-topics binary for readiness checks and healthchecks. This prevents failures on images that expose the kafka-topics command without the .sh wrapper.

* Use docker compose --wait for Kafka startup

Replace the custom bash readiness loop with `docker compose ... up -d --wait` in CI and PR workflows. This simplifies startup of the microservices-messaging Kafka service and removes the manual retry/polling logic. Files changed: .github/workflows/maven-ci.yml, .github/workflows/maven-pr-builder.yml. Note: requires a Docker Compose version that supports the `--wait` flag.

* Reformat tests for readability

Reformatted KafkaMessageConsumerTest and PaymentServiceTest for readability and consistent formatting: reflowed constructor invocation, expanded anonymous HashMap and schedulePollTask lambda blocks, and aligned assertDoesNotThrow parameters. These are pure style changes with no behavioral modifications.

* Remove Kafka Docker Compose steps from CI

Removed the Start/Stop Kafka Docker Service steps that ran docker compose for microservices-messaging from .github/workflows/maven-ci.yml and .github/workflows/maven-pr-builder.yml. Workflows no longer start or tear down the Kafka docker-compose service during CI/PR runs; other steps (xvfb install, Maven build, Codecov upload, Sonar cache) remain unchanged.

* Bump google-java-format to 1.27.0; tidy tests

Update pom.xml to use google-java-format 1.27.0 (was 1.17.0). Make minor formatting cleanups in KafkaMessageConsumerTest and PaymentServiceTest by collapsing multi-line calls into single lines. No functional changes.

* Downgrade Google Java Format to 1.17.0

Update Spotless googleJavaFormat version in root pom.xml from 1.27.0 to 1.17.0

* Improve Kafka producer and consumer tests

Enhance microservices-messaging tests: add consumer tests to verify run() exits immediately when stopped and gracefully handles a WakeupException (ensuring the MockConsumer is closed). Update producer error test to avoid try-with-resources, assert publish behavior and history, trigger failingProducer.errorNext(...) before closing to cover the error callback branch, then close and assert the mock producer is closed.

* Refactor App.run and add messaging tests

Extract App.run(...) and introduce a package-private sleepMs field to control sleep durations so the demo can be exercised programmatically and sped up for tests. Main now delegates to run; consumers are started there. Tests updated: AppTest sets sleepMs to 0 and adds testRunWithMockObjects using MockProducer/MockConsumer to exercise run without a Kafka broker; KafkaMessageProducerTest adds a null-message publish test; minor formatting fix in KafkaMessageConsumerTest. These changes improve testability and coverage for the microservices-messaging module.
2026-08-16 22:12:29 +03:00
2026-06-07 12:35:18 +03:00
2024-03-27 20:09:01 +02:00
2025-03-29 19:34:27 +02:00
2026-06-07 19:32:28 +03:00
2025-04-12 16:40:17 +03:00
2025-04-14 20:54:05 +03:00
2025-04-09 21:30:44 +03:00
2025-05-02 22:02:40 +03:00
2025-04-09 21:49:23 +03:00
2025-04-09 21:54:13 +03:00
2025-04-09 21:57:39 +03:00
2025-04-15 21:24:13 +03:00
2024-05-22 15:40:55 +03:00
2026-05-03 18:11:17 +03:00
2024-04-08 21:27:11 +03:00
2022-09-14 23:22:24 +05:30
2024-04-08 21:01:38 +03:00
2022-01-24 21:57:02 +05:30
2022-01-24 21:57:02 +05:30

Design Patterns Implemented in Java

Java CI License MIT Lines of Code Coverage Join the chat at https://gitter.im/iluwatar/java-design-patterns

All Contributors


Read in different language : zh, zh-TW ,ko, fr, tr, ar, es, pt, id, ru, de, ja, vi, bn, np, it, da

Introduction

Design patterns are the best, formalized practices a programmer can use to solve common problems when designing an application or system.

Design patterns can speed up the development process by providing tested, proven development paradigms.

Reusing design patterns helps prevent subtle issues that cause major problems, and it also improves code readability for coders and architects who are familiar with the patterns.

Getting Started

This site showcases Java Design Patterns. The solutions have been developed by experienced programmers and architects from the open-source community. The patterns can be browsed by their high-level descriptions or by looking at their source code. The source code examples are well commented and can be thought of as programming tutorials on how to implement a specific pattern. We use the most popular battle-proven open-source Java technologies.

Before you dive into the material, you should be familiar with various Software Design Principles.

All designs should be as simple as possible. You should start with KISS, YAGNI, and Do The Simplest Thing That Could Possibly Work principles. Complexity and patterns should only be introduced when they are needed for practical extensibility.

Once you are familiar with these concepts you can start drilling down into the available design patterns by any of the following approaches:

  • Search for a specific pattern by name. Can't find one? Please report a new pattern here.
  • Using tags such as Performance, Gang of Four or Data access.
  • Using pattern categories, Creational, Behavioral, and others.

Hopefully, you find the object-oriented solutions presented on this site useful in your architectures and have as much fun learning them as we had while developing them.

How to Contribute

If you are willing to contribute to the project you will find the relevant information in our developer wiki. We will help you and answer your questions in the Gitter chatroom.

The Book

The design patterns are now available as an e-book. Find out more about "Open Source Java Design Patterns" here: https://payhip.com/b/bNQFX

The project contributors can get the book for free. Contact the maintainer via Gitter chatroom or email (iluwatar (at) gmail (dot) com ). Send a message that contains your email address, Github username, and a link to an accepted pull request.

License

This project is licensed under the terms of the MIT license.

Contributors

Ilkka Seppälä
Ilkka Seppälä

📆 🚧 🖋
Subhrodip Mohanta
Subhrodip Mohanta

💻 👀 🚧
amit1307
amit1307

💻
Narendra Pathai
Narendra Pathai

💻 🤔 👀
Jeroen Meulemeester
Jeroen Meulemeester

💻
Joseph McCarthy
Joseph McCarthy

💻
Thomas
Thomas

💻
Anurag Agarwal
Anurag Agarwal

💻
Markus Moser
Markus Moser

🎨 💻 🤔
Sabiq Ihab
Sabiq Ihab

💻
Amit Dixit
Amit Dixit

💻
Piyush Kailash Chaudhari
Piyush Kailash Chaudhari

💻
joshzambales
joshzambales

💻
Kamil Pietruszka
Kamil Pietruszka

💻
Zafar Khaydarov
Zafar Khaydarov

💻 📖
Paul Campbell
Paul Campbell

💻
Argyro Sioziou
Argyro Sioziou

💻
TylerMcConville
TylerMcConville

💻
saksham93
saksham93

💻
nikhilbarar
nikhilbarar

💻
Colin But
Colin But

💻
Ruslan
Ruslan

💻
Juho Kang
Juho Kang

💻
Dheeraj Mummareddy
Dheeraj Mummareddy

💻
Bernardo Sulzbach
Bernardo Sulzbach

💻
Aleksandar Dudukovic
Aleksandar Dudukovic

💻
Yusuf Aytaş
Yusuf Aytaş

💻
Mihály Kuprivecz
Mihály Kuprivecz

💻
Stanislav Kapinus
Stanislav Kapinus

💻
GVSharma
GVSharma

💻
Srđan Paunović
Srđan Paunović

💻
Petros G. Sideris
Petros G. Sideris

💻
Pramod Gupta
Pramod Gupta

👀
Amarnath Chandana
Amarnath Chandana

💻
Anurag870
Anurag870

💻 📖
Wes Gilleland
Wes Gilleland

💻
Harshraj Thakor
Harshraj Thakor

💻
Martin Vandenbussche
Martin Vandenbussche

💻
Alexandru Somai
Alexandru Somai

💻
Artur Mogozov
Artur Mogozov

💻
anthony
anthony

💻
Christian Cygnus
Christian Cygnus

💻
Dima Gubin
Dima Gubin

💻
Joshua Jimenez
Joshua Jimenez

💻
Kai Winter
Kai Winter

💻
lbroman
lbroman

💻
Przemek
Przemek

💻
Prafful Agarwal
Prafful Agarwal

🖋
Sanket Panhale
Sanket Panhale

🖋
staillebois
staillebois

💻
Krisztián Nagy
Krisztián Nagy

💻
Alexander Ivanov
Alexander Ivanov

💻
Yosfik Alqadri
Yosfik Alqadri

💻
Agustí Becerra Milà
Agustí Becerra Milà

💻
Juan Manuel Suárez
Juan Manuel Suárez

💻
Luigi Cortese
Luigi Cortese

💻
Katarzyna Rzepecka
Katarzyna Rzepecka

💻
adamski.pro
adamski.pro

💻
Shengli Bai
Shengli Bai

💻
Boris
Boris

💻
Dmitry Avershin
Dmitry Avershin

💻
靳阳
靳阳

💻
hoangnam2261
hoangnam2261

💻
Arpit Jain
Arpit Jain

💻
Jón Ingi Sveinbjörnsson
Jón Ingi Sveinbjörnsson

💻
Kirill Vlasov
Kirill Vlasov

💻
Mitchell Irvin
Mitchell Irvin

💻
Ranjeet
Ranjeet

💻
PhoenixYip
PhoenixYip

💻
M Saif Asif
M Saif Asif

💻
kanwarpreet25
kanwarpreet25

💻
Leon Mak
Leon Mak

💻
Per Wramdemark
Per Wramdemark

💻
Evan Sia Wai Suan
Evan Sia Wai Suan

💻
AnaghaSasikumar
AnaghaSasikumar

💻
Christoffer Hamberg
Christoffer Hamberg

💻
Dominik Gruntz
Dominik Gruntz

💻
Hannes
Hannes

💻
Leo Gutiérrez Ramírez
Leo Gutiérrez Ramírez

💻
Zhang WH
Zhang WH

💻
Christopher O'Connell
Christopher O'Connell

💻
George Mavroeidis
George Mavroeidis

💻
Hemant Bothra
Hemant Bothra

💻 🎨
Kevin Peters
Kevin Peters

💻
George Aristy
George Aristy

💻
Mahendran Mookkiah
Mahendran Mookkiah

💻
Azureyjt
Azureyjt

💻
gans
gans

💻
Matt
Matt

🖋
Gopinath Langote
Gopinath Langote

💻
Hoswey
Hoswey

💻
Amit Pandey
Amit Pandey

💻
gwildor28
gwildor28

🖋
田浩
田浩

🖋
Stamatis Pitsios
Stamatis Pitsios

💻
qza
qza

💻
Rodolfo Forte
Rodolfo Forte

🖋
Ankur Kaushal
Ankur Kaushal

💻
Ovidijus Okinskas
Ovidijus Okinskas

💻
Robert Kasperczyk
Robert Kasperczyk

💻
Tapio Rautonen
Tapio Rautonen

💻
Yuri Orlov
Yuri Orlov

💻
Varun Upadhyay
Varun Upadhyay

💻
Aditya Pal
Aditya Pal

💻
grzesiekkedzior
grzesiekkedzior

💻 👀
Sivasubramani M
Sivasubramani M

💻
Sami Airaksinen
Sami Airaksinen

💻
Janne Sinivirta
Janne Sinivirta

💻
Boris-Chengbiao Zhou
Boris-Chengbiao Zhou

🖋
Jacob Hein
Jacob Hein

🖋
Richard Jones
Richard Jones

🖋
Rachel M. Carmena
Rachel M. Carmena

🖋
Zaerald Denze Lungos
Zaerald Denze Lungos

🖋
Lars Kappert
Lars Kappert

🖋
Mike Liu
Mike Liu

🌍
Matt Dolan
Matt Dolan

💻 👀
Manan
Manan

👀
Nishant Arora
Nishant Arora

💻
Peeyush
Peeyush

💻
Rakesh
Rakesh

💻 👀
Wei Seng
Wei Seng

💻
Ashish Trivedi
Ashish Trivedi

💻
洪月阳
洪月阳

💻
xdvrx1
xdvrx1

👀 🤔
Bethan Palmer
Bethan Palmer

💻
Toxic Dreamz
Toxic Dreamz

💻
Edy Cu Tjong
Edy Cu Tjong

📖
Michał Krzywański
Michał Krzywański

💻
Stefan Birkner
Stefan Birkner

💻
Fedor Skvorcov
Fedor Skvorcov

💻
samilAyoub
samilAyoub

💻
Vladislav Golubinov
Vladislav Golubinov

💻
Swaraj
Swaraj

💻
Christoph Flick
Christoph Flick

📖
Ascênio
Ascênio

👀
Domenico Sibilio
Domenico Sibilio

📖
Akash Chandwani
Akash Chandwani

👀
Pavlo Manannikov
Pavlo Manannikov

💻
Eiman
Eiman

💻
Rocky
Rocky

📖
Ibrahim ali abdelghany
Ibrahim ali abdelghany

👀
Girish Kulkarni
Girish Kulkarni

📖
Omar Karazoun
Omar Karazoun

💻
Jeff Evans
Jeff Evans

💻
Vivek Singh
Vivek Singh

💻
siavash
siavash

💻
ruchpeanuts
ruchpeanuts

📖
warp125
warp125

🌍
KHADIR Tayeb
KHADIR Tayeb

🌍
ignite1771
ignite1771

💻
Halil Demir
Halil Demir

🌍
Rohit Singh
Rohit Singh

💻
byoungju94
byoungju94

💻
Moustafa Farhat
Moustafa Farhat

🌍
Martel Richard
Martel Richard

💻
va1m
va1m

💻
Noam Greenshtain
Noam Greenshtain

💻
yonghong Xu
yonghong Xu

📖
jinishavora
jinishavora

👀 💻
Elvys Soares
Elvys Soares

💻
zWeBrain
zWeBrain

💻
余林颖
余林颖

🌍
Alain
Alain

🌍
VR
VR

📖
JackieNim
JackieNim

💻
EdisonE3
EdisonE3

💻
Tao
Tao

💻
Juan Manuel Abate
Juan Manuel Abate

🌍
Xenilo137
Xenilo137

💻
Samuel Souza
Samuel Souza

💻 📖
Marlo Henrique
Marlo Henrique

🌍
AndriyPyzh
AndriyPyzh

💻
karthikbhat13
karthikbhat13

💻
Morteza Adigozalpour
Morteza Adigozalpour

💻
Nagaraj Tantri
Nagaraj Tantri

💻
Francesco Scuccimarri
Francesco Scuccimarri

💻
Conny Hansson
Conny Hansson

📖
Muklas Rahmanto
Muklas Rahmanto

🌍
Vadim
Vadim

🌍
Simran Keshri
Simran Keshri

💻
JCarlos
JCarlos

🌍
Ali Ghasemi
Ali Ghasemi

💻
Carl Dea
Carl Dea

💻
Mozartus
Mozartus

🌍
Manvi Goel
Manvi Goel

📖
Anum Amin
Anum Amin

📖
Reo Uehara
Reo Uehara

🌍
Fiordy
Fiordy

📖
Harshal
Harshal

💻
Abhinav Vashisth
Abhinav Vashisth

📖
Kevin
Kevin
👀 💻
Shrirang
Shrirang

👀 💻
interactwithankush
interactwithankush

💻
CharlieYu
CharlieYu

💻
Leisterbecker
Leisterbecker

💻
DragonDreamer
DragonDreamer

💻
ShivanshCharak
ShivanshCharak

💻
HattoriHenzo
HattoriHenzo

💻
Arnab Sen
Arnab Sen

💻
MohanaRao SV
MohanaRao SV

💻
Yonatan Karp-Rudin
Yonatan Karp-Rudin

💻 👀
Oliani
Oliani

💻
Renjie LIU
Renjie LIU

💻
perfect guy
perfect guy

📖
xyllq999
xyllq999

💻
Mohamed Bilal
Mohamed Bilal

📖
Karshil sheth
Karshil sheth

💻
kongleong86
kongleong86

💻
Aitor Fidalgo Sánchez
Aitor Fidalgo Sánchez

🌍 📖 👀
Victor He
Victor He

💻
Minh Nguyen
Minh Nguyen

🌍 📖
Victor He
Victor He

📖
yiichan
yiichan

📖
Pan Sem
Pan Sem

📖
zhoumengyks
zhoumengyks

💻
you
you

🌍
Thanks
Thanks

🌍
LazyProgrammer
LazyProgrammer

📖
Mohammed Faizan Ahmed
Mohammed Faizan Ahmed

📖
Bruno Fernandes
Bruno Fernandes

💻
SammanPali
SammanPali

📖
Qixiang Chen
Qixiang Chen

📖
Shourya Manekar
Shourya Manekar

🌍
Alan
Alan

🌍
JanFidor
JanFidor

💻 📖
Anton Yakutovich
Anton Yakutovich

💻
steph88ss
steph88ss

📖
Yujan Ranjitkar
Yujan Ranjitkar

🌍
yusha-g
yusha-g

🌍
Robert Volkmann
Robert Volkmann

💻 👀
Bipin Kumar Chaurasia
Bipin Kumar Chaurasia

📖
KyleSong30
KyleSong30

📖
u7281975
u7281975

📖
harshalkhachane
harshalkhachane

💻
Tejas Singh
Tejas Singh

📖 🌍
Sudarsan Balaji
Sudarsan Balaji

💻
Vaibhav Agrawal
Vaibhav Agrawal

📖
u7275858
u7275858

💻
prasad-333
prasad-333

📖
JurenXu
JurenXu

💻
murphShaw
murphShaw

📖
XianWu99
XianWu99

📖
JoshuaSinglaANU
JoshuaSinglaANU

💻
Ricardo Ramos
Ricardo Ramos

🌍
Farid Zouheir
Farid Zouheir

🌍
Vinícius A. B.
Vinícius A. B.

🌍
Stefanel Stan
Stefanel Stan

💻
Prince bhati
Prince bhati

🌍
WuLang
WuLang

📖
Hugo Kat
Hugo Kat

💻
Shivanagouda Agasimani
Shivanagouda Agasimani

💻
Aparna
Aparna

💻
Girolamo Giordano
Girolamo Giordano

🌍
Chak-C
Chak-C

💻
Nakul Nambiar
Nakul Nambiar

💻
KarmaTashiCat
KarmaTashiCat

🌍
marikattt
marikattt

💻
Hashvardhan Parmar
Hashvardhan Parmar

🌍
YongHwan
YongHwan

📖 🌍
Shogo Hida
Shogo Hida

🌍
Eugene
Eugene

💻
Piyush
Piyush

📖
Rahul Raj
Rahul Raj

💻
Bharath Kalyan S
Bharath Kalyan S

💻
Saiteja Reddy
Saiteja Reddy

🌍
Enrique Clerici
Enrique Clerici

🌍
Ramil Sayetov
Ramil Sayetov

🌍
东方未白
东方未白

💻
Fredrik Sejr
Fredrik Sejr

🌍
akshatarora0013
akshatarora0013

💻
Mughees Qasim
Mughees Qasim

💻
behappyleee
behappyleee

🌍
Ayush Thakur
Ayush Thakur

🌍
Anthony Bosch
Anthony Bosch

💻
trananso
trananso

📖
Giammaria Biffi
Giammaria Biffi

🌍
Saiful Haque
Saiful Haque

💻
JabezBrew
JabezBrew

💻
konstantin-goldman
konstantin-goldman

📖
Tien Nguyen Minh
Tien Nguyen Minh

💻 🌍
Vladimir
Vladimir

🌍
Surjendu
Surjendu

🌍 💻
bakazhou
bakazhou

💻
Owen Leung
Owen Leung

💻
Stavros Barousis
Stavros Barousis

📖
Syyed Ibrahim Abdullah
Syyed Ibrahim Abdullah

🌍
JiaDi Zhang
JiaDi Zhang

🌍
Sanchit Bansal
Sanchit Bansal

📖
Md Saiful Islam
Md Saiful Islam

📖
Antonio Addeo
Antonio Addeo

📖 💻
Allagadda Sai Upendranath
Allagadda Sai Upendranath

📖
Matheus Braga
Matheus Braga

🌍 📖
Appari Satya Barghav
Appari Satya Barghav

📖
Marcel Ribeiro-Dantas
Marcel Ribeiro-Dantas

📖
Muhammad Hanif Amrullah
Muhammad Hanif Amrullah

🌍
JackH408
JackH408

📖
Shubham
Shubham

🌍
Nishant Jain
Nishant Jain

📖
Rhitam Chaudhury
Rhitam Chaudhury

📖
JerryZhao275
JerryZhao275

📖
Leonardo Lisanti
Leonardo Lisanti

🌍
Yennifer Herrera
Yennifer Herrera

🌍 👀
jnniu-n
jnniu-n

🌍 📖
Miguel Angel Perez Garcia
Miguel Angel Perez Garcia

👀 🌍
Suwan Sankaja
Suwan Sankaja

🌍
alok
alok

📖
Daniel Lisboa
Daniel Lisboa

🌍
Sam Powell
Sam Powell

📖
João Fernandes
João Fernandes

🌍
Hong Geon-ui
Hong Geon-ui

🌍
Doksanbir
Doksanbir

💻 📖 👀
Chant3ll3
Chant3ll3

📖 🌍
YongHwan Kwon
YongHwan Kwon

💻
Jakub Klimek
Jakub Klimek

💻
believe
believe

🌍
egg0102030405
egg0102030405

🌍 📖
Ved Asole
Ved Asole

💻
NewMorning
NewMorning

🌍
资深老萌新
资深老萌新

🌍
Seunghwan Jeon
Seunghwan Jeon

🌍
sugavanesh
sugavanesh

💻
FinnS-F
FinnS-F

💻
jerryyummy
jerryyummy

🌍
Manoj Chowdary
Manoj Chowdary

💻
Aditya
Aditya

📖 💻
nooynayr
nooynayr

📖
CYBERCRUX2
CYBERCRUX2

📖
Luis Mateo Hincapié Martinez
Luis Mateo Hincapié Martinez

🌍 👀
guqing
guqing

💻
Sashir Estela
Sashir Estela

💻
omahs
omahs

📖
leif e.
leif e.

💻
Jun Kang
Jun Kang

💻
Kishalay Pandey
Kishalay Pandey

💻
drishtii7
drishtii7

💻
David Medina Orozco
David Medina Orozco

🌍 👀
Roman Leontev
Roman Leontev

💻
Riley
Riley

💻
k1w1dev
k1w1dev

💻
dev-yugantar
dev-yugantar

💻
Adelya
Adelya

💻
gatlanagaprasanna
gatlanagaprasanna

📖
Avinash Shukla
Avinash Shukla

💻
Mayank Choudhary
Mayank Choudhary

💻
romannimets
romannimets

💻
Joel
Joel

💻
Walyson Moises
Walyson Moises

💻
Xcyq
Xcyq

💻
Ritabrata
Ritabrata

👀
Trivikram Kamat
Trivikram Kamat

💻
Vincent Vanghelle
Vincent Vanghelle

🌍
Antoine Héritier
Antoine Héritier

🌍
QinShower
QinShower

🌍
LakshyaPunyani-01
LakshyaPunyani-01

💻
jasonjyu
jasonjyu

💻
jeffmorrison
jeffmorrison

💻
David M.
David M.

💻
Patrick Kleindienst
Patrick Kleindienst

💻
Juyeon
Juyeon

🌍
Mammad Yahyayev
Mammad Yahyayev

📖
Salma
Salma

💻
Arpit Sarang
Arpit Sarang

💻
Maya
Maya

🌍
HabibaMekay
HabibaMekay

💻
Ahmed-Taha-981
Ahmed-Taha-981

💻
Malak Elbanna
Malak Elbanna

💻
BiKangNing
BiKangNing

📖
Tarun Vishwakarma
Tarun Vishwakarma

💻
Shahd Hossam
Shahd Hossam

💻
Mehdi Rahimi
Mehdi Rahimi

💻
Clint Airé
Clint Airé

💻
darkhyper24
darkhyper24

💻
Mohaned Atef
Mohaned Atef

💻
Maxim Evtush
Maxim Evtush

💻
Harshita Vidapanakal
Harshita Vidapanakal

💻
smile-ab
smile-ab

🌍 💻
Francisco-G-P
Francisco-G-P

🌍
Gabriel Duarte
Gabriel Duarte

📖
Deniz Altunkapan
Deniz Altunkapan

🌍
John Klint
John Klint

💻
Sanura Hettiarachchi
Sanura Hettiarachchi

💻
Kim Gi Uk
Kim Gi Uk

💻
Suchismita Deb
Suchismita Deb

💻
ssrijan-007-sys
ssrijan-007-sys

💻
e5LA
e5LA

💻 📖
Maziyar Gerami
Maziyar Gerami

🌍
yoobin_mion
yoobin_mion

💻
Soumik Sarker
Soumik Sarker

📖
Naman Srivastava
Naman Srivastava

💻
Thanh Nguyen Duc
Thanh Nguyen Duc

💻
Soham Kamble
Soham Kamble

💻
Olexandr88
Olexandr88

📖
Nils Reichardt
Nils Reichardt

🛡️
Christopher Lusk
Christopher Lusk

🛡️
dagecko
dagecko

🛡️
jackmisbach
jackmisbach

🛡️
avivdon
avivdon

🛡️
Aditya Kumawat
Aditya Kumawat

💻
devch37
devch37

💻
HY-love-sleep
HY-love-sleep

💻
CMD137
CMD137

💻
QuantumRange
QuantumRange

📖
Dhiraj Birajdar
Dhiraj Birajdar

📖
Stefan Siebers
Stefan Siebers

🌍
OrbisAI Security
OrbisAI Security

🛡️
Raju Gupta
Raju Gupta

💻
김정모
김정모

💻
Anakin Yen
Anakin Yen

🌍
Giuliano Oliveira
Giuliano Oliveira

🌍
Priyanshu
Priyanshu

💻
Arnab Nandy
Arnab Nandy

📖
BAGHDAD Mohamed
BAGHDAD Mohamed

💻
Anvesh Srivastava
Anvesh Srivastava

💻
Languages
Java 99.4%
HTML 0.3%
CSS 0.2%