loading...
Cover image for React, Reactive Microservices, Kubernetes, GraphQL & gRPC - Announcing Appwish - Fullstack Tutorial Series & Opensource Project

React, Reactive Microservices, Kubernetes, GraphQL & gRPC - Announcing Appwish - Fullstack Tutorial Series & Opensource Project

pjeziorowski profile image Patryk Jeziorowski Originally published at talkoverflow.com Updated on ・2 min read

Hello everyone!

In the next few days, I'll start publishing posts on building Appwish - a platform where people can express their app wishes (e.g. "I wish I had an app for X and Y") and vote up other people's great ideas.

Developers can use Appwish to keep track of the most wanted apps and features. They can assign themselves to projects, create dev teams and collaborate to fulfil people's needs.

In the future, the platform could also introduce elements of fund-raising or voluntary donations for the most appreciated developers and teams.

In the project and tutorials I'll use all of the following concepts and technologies (& more)

  • React.js - for building modern web UI
  • GraphQL - for data exchange between UI and backend microservices
  • gRPC - for backend inter-service communication
  • Docker - for packaging applications
  • Docker Compose - for setting up local development environment
  • Vert.x - for creating high-performance, reactive microservices
  • Kubernetes - for container orchestration
  • Real-Time Data Streaming via gRPC & GraphQL
  • Microservices architecture

If the project goes well, there's even more stuff in plans:

  • Istio - additional layer on top of Kubernetes for managing service-to-service communications between microservices
  • Many of the Cloud Native Computing Foundation projects like
    • Jaeger - for distributed tracing
    • Prometheus - for system monitoring
  • React Native - for iOS & Android client (or other mobile native framework, contributions are welcome!)

The Goal

The goal of this project is to create a real-life application/platform using top trending technologies & describe all the steps in educational tutorial series. If the project goes well, it may be released someday!

Contributions are welcome!

After I set up the initial project skeleton I'd appreciate any contributions from people who would like to collaborate in app development and/or learn hands-on.

Frontend, Backend, DevOps - doesn't matter - you'll find your place here. There's lots to do!

Final Words

If you like (or don't) the idea - share your thoughts and let me know in the comments or on social media - I'd really appreciate it! You can also let me know if you'd prefer the tutorial in the form of blog posts or videos :) Thank you for reading!

EDIT:
Now you can also join us on Slack to learn more about the project - https://join.slack.com/t/appwish/shared_invite/enQtODk2NjE1ODkyMjMwLTU4NTNhYzBmYmI0MzNiNmJjNDU4MzRkNjI4ZTc4NWZmMzMyMTZmNWFjNDAzNTIwMDYzY2U5YWVhMTRkZGIyNmI

Discussion

pic
Editor guide
Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

BTW. I see lots of Node.js developers interested in contributing - do you guys prefer sticking with Node or you want to learn something new?

For the first two microservices, I used Vert.x - it's a framework for building reactive applications on the JVM.

At its core, it's very similar to Node - it's event-based and uses event loop to process events. However, as it uses JVM languages(Java, Kotlin, Scala...), it's not limited to a single thread as Node - it uses "Multi-Reactor" pattern, where multiple event loops can process events parallelly (the optimal number of loops is based on CPU core number) vertx.io/docs/vertx-core/java/#_re...

As we use microservices, theoretically we could write other services using Node. But nothing is free - adding new languages to the stack comes with some costs.

So, would you like to try Vert.x or rather put some Node microservices to the game?

Collapse
uminer profile image
Moshe Uminer

I can't say that I'm familiar with NodeJS, but I am certainly familiar with javascript. For me, however, I would prefer Vert.x, as I am interested in learning more about the JVM languages / ecosystem.

(disclaimer: while I hope to contribute, I don't know that I will, so I don't know how much my opinion should matter)

Collapse
rricardotj profile image
Ricardo Andres

I love Nodejs. But I have a short experience in JAVA. I would like to keep learning more of java. For me it's not a problem learn something new.

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Great to hear that :)

Collapse
ahwinemman profile image
Ahwin Oghenerukevwe

Hello Patryk,my core Stack is React / Java but I don't working with any language so I wouldn't mind a polyglot environment. Here's my github id: ahwinemman 😉

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

I've sent you invite on . Github - feel free to join Slack: join.slack.com/t/appwish/shared_in...

Collapse
navicsteinr profile image
Navicstein Rotciv

We choose node

Collapse
danias profile image
Vasilis Danias

How come you didn't go with Go lang and went for Vert.x instead?

Collapse
ashutosh049 profile image
ashutosh

Hey @pjeziorowski , excited for your App, I'm more of a Java/Microservice guy and would love to contribute in same. I would love to learn Node and Vert.x

Add me as a contributor , my GitHub id is @ashutosh049

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Great. We need Java microservice guys if we go with Vert.x :D

Collapse
percyvega profile image
Percy Vega

Perfect. That's what I do at work. Count me in.

Collapse
pmlopes profile image
Paulo Lopes

Hi @pjeziorowski , really good initiative, on the vert.x side, I can also add that vert.x is a polyglot framework, which means that you can use Java and also use JavaScript if you like.

I see that there is interest on JavaScript so if you want to showcase the polyglot aspect, please also look at reactiverse.io/es4x/ which is the successor of the current javascript binding.

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

This reactiverse.io/es4x/ looks dope :) I've never heard of somebody using Vert.x with JS extensively though

Collapse
ad0791 profile image
Alexandro Disla

I will learn a lot for sure

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

As this comment section gets bigger and bigger it's getting hard to manage - I hope I haven't missed anyone :) If you haven't received the invitation to join project on Github, ping me on SLACK:

join.slack.com/t/appwish/shared_in...

This channel will be also used for talks about development, new features & ideas, so I kindly ask all people involved/interested in contributing to join :)

@rricardotj @ahwinemman @rv1448 @ashutosh049 @narutosanjiv @mfahad1 @ducminh @noelchanwh @krsanty @quangthanh0909 @mojjammil & all others

Collapse
rv1448 profile image
Rahul Vangala

Thanks Patryk for sharing slack channel.

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Feel free to join! :)

Collapse
parables profile image
Parables

I have to get my hands dirty this year. I have been reading documentation and watching tutorials since 2017 without putting them into practice.

I would be grateful if you could add me as a contributor to this awesome project. Working alongside experts would inspire me a lot and I am sure I will learn more from this project.

GitHub:
github.com/Parables
Email: parables95@gmail.com

Collapse
marcussa profile image
Marcus S. Abildskov

You don't have to use Docker Compose as a local dev environment.
When deploying to Kubernetes, you might as well develop directly on it.
Several tools allow you to do this such as Skaffold, Garden & Okteto

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

I've heard about Skaffold before but never used it, I'll definitely give it a closer look.

Collapse
amanullachishty profile image
AMANULLA CHISHTY

looking forward to this.

Collapse
avelang profile image
Abey Velangadan

Damn cool stuff! I'm a decade old developer with a perpetual imposter syndrome! Time to get my hands dirty! This project is so exciting. Thanks for doing this! I'm definitely going to learn a lot and hopefully be contributing in a big way as well! Add me please

GitHub account: @avelang
Email address: abey[dot]velangadan[at]gmail[dot]com

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Great! I'll add you soon - you can also join us on Slack :)

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

I'll soon create an organization on GitHub with a task board.

After it's done I'll add you all guys as contributors if you're interested :)

Collapse
maxmorev profile image
Maxim Morev

Yeah. Intrested

Collapse
rv1448 profile image
Rahul Vangala

A slack channel would greatly help everyone to contribute and form groups to contribute module or necessary feature or idea.

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Yeah, that's a GREAT idea. I had been thinking about this yesterday but didn't have enough time to create one. I'll share an invite link soon :)

Collapse
ahwinemman profile image
Ahwin Oghenerukevwe

I'm very interested.
Github: github.com/ahwinemman.
Email: ahwinrukevwe@gmail.com

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Hi Noel, that's great! We lack UX engineers :D

I'll send you an invitation to org. on Github.

I've just created a Slack channel - feel free to join :)
join.slack.com/t/appwish/shared_in...

Collapse
ashok766 profile image
Ashok K

Fantastic.

Collapse
jinglescode profile image
Jingles (Hong Jing)

Nice! Keep us updated.

Collapse
pjeziorowski profile image
Collapse
navicsteinr profile image
Navicstein Rotciv

Wow, add me as a contributor, I'll like to contribute too

Collapse
pjeziorowski profile image
Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

I'll need your Github username :)

Collapse
navicsteinr profile image
Navicstein Rotciv

@navicstein is my GitHub username, I'll have to focus more on GitHub now because I've been using Gitlab 🥰

Collapse
hinasoftwareengineer profile image
Hina-softwareEngineer

I have learnt node and want to to do hands on Project. Your idea is Innovative and much beneficial for people. I want to be a contributer.:)

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

I've sent you an invitation on Github

Collapse
hinasoftwareengineer profile image
Hina-softwareEngineer

Yes, i have seen and accepted. Thanks a lot.

Collapse
narutosanjiv profile image
Sanjiv

Hi Patryk,
I am Node.js/ROR developers, have some experience in Java mainly on Spring framework. I would like to work on Vertx as well, add me as a contributor. My github id is @narutosanjiv

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Great! Feel free to join Slack channel - join.slack.com/t/appwish/shared_in...

Collapse
samauto profile image
SaMauto

Love it! If you need more backend/DevOps let me know!

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

@samauto I can add you to the organization on Github if you wish. There will be some tasks on the board soon - you could pick one that suits you :)

Collapse
mfahad1 profile image
mfahad1

Interested in React, GraphQL. But know much about Java but will be happy to step in JVM world. my GitHub username is mfahad1

Collapse
brpaz profile image
Bruno Paz

Great idea for the App. I had the idea of building something like that for some time, but have other priorities at the moment.

Good luck! ;)

Collapse
pjeziorowski profile image
Collapse
quangthanh0909 profile image
quangthanh0909

Can you add me as contributor. I'm a Front End developer with ReactJS and sometime worked on NodeJS

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Sure! I'll add you soon

Collapse
parasharrajat profile image
Rajat Parashar

Let me know when marching the path.

Collapse
pjeziorowski profile image
Collapse
rricardotj profile image
Ricardo Andres

Want to collaborate! I'm Nodejs developer

Collapse
pjeziorowski profile image
Collapse
omkaragrawal profile image
OMKAR AGRAWAL

Hey, I am just a begginer and I would love to be a part of this great project. Really love the idea.

Collapse
softcoda profile image
Justin

wowww... I love d concept. Would prefer blog posts for less complex tasks and video for more complex stuff.

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Thank you for your opinion! :)

Collapse
sths20 profile image
säthïs

I'm waiting for this to be started to contribute on all *end's. Have to sharp my kubernetes knowledge with this!!

Collapse
andresgutgon profile image
Andrés

Hi Patryk, where I can find more on how to collaborate? I've a Ruby/React background and I'm interested in GraphQL. Ping me on Twitter if you read this @andresgutgon :)

Collapse
sintimmisa profile image
G. D. Sintim-Misah

Hello. Am a beginner so I would love to learn and contribute where I can.

Would love to read for Simple tutorials and videos for complex stuff.

Github:
@sintimmisa

Twitter:
@sintimmisa

Tei

Collapse
rphilogene profile image
Romaric Philogène

That's awesome

Collapse
jlpnunes profile image
Jorge Nunes

I am interested. I have very good experience with Java and some experience with RPC, Python, GraphQL. Please add me to the project. I am looking forward to learn new techs.
email: jlpnunes@gmail.com

Collapse
pjeziorowski profile image
Patryk Jeziorowski Author

Sure! I'll add you to the org. on Github - you can also join Slack channel to get more info.

Collapse
sukhwant profile image
Sukhwant Prafullit

Interesting. I would join too. I have used Java and micro-services, would like to learn react and graphQL