All Projects → jponge → demo-vertx-kotlin-rxjava2-kubernetes

jponge / demo-vertx-kotlin-rxjava2-kubernetes

Licence: Apache-2.0 License
Demonstration of Eclipse Vert.x, Kotlin, RxJava2 and Kubernetes

Programming Languages

kotlin
9241 projects
Vue
7211 projects
HTML
75241 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to demo-vertx-kotlin-rxjava2-kubernetes

Vertx Mqtt
Vert.x MQTT
Stars: ✭ 117 (+408.7%)
Mutual labels:  reactive, vertx, rxjava2
Vertx Jooq
A jOOQ-CodeGenerator to create vertx-ified DAOs and POJOs.
Stars: ✭ 299 (+1200%)
Mutual labels:  reactive, vertx, rxjava2
Proteus
Lean, mean, and incredibly fast JVM framework for web and microservice development.
Stars: ✭ 178 (+673.91%)
Mutual labels:  reactive, microservice
Xian
reactive风格的微服务框架
Stars: ✭ 196 (+752.17%)
Mutual labels:  reactive, rxjava2
RxPagination
Implement pagination in just few lines with RxPagination
Stars: ✭ 20 (-13.04%)
Mutual labels:  rxjava2, rxkotlin
Vertx In Action
Examples for the Manning "Vert.x in Action" book
Stars: ✭ 134 (+482.61%)
Mutual labels:  reactive, vertx
Vert.x
Vert.x is a tool-kit for building reactive applications on the JVM
Stars: ✭ 12,544 (+54439.13%)
Mutual labels:  reactive, vertx
reactiverse
The Reactiverse main entry point
Stars: ✭ 26 (+13.04%)
Mutual labels:  reactive, vertx
Advanced Vertx Guide
A gentle guide for advanced Vert.x users
Stars: ✭ 118 (+413.04%)
Mutual labels:  reactive, vertx
vertx-codegen
Vert.x code generator for asynchronous polyglot APIs
Stars: ✭ 95 (+313.04%)
Mutual labels:  reactive, vertx
Poolakey
Android In-App Billing SDK for Cafe Bazaar App Store
Stars: ✭ 60 (+160.87%)
Mutual labels:  rxjava2, rxkotlin
rxjava2-http
Transmit RxJava2 Flowable over http with non-blocking backpressure
Stars: ✭ 19 (-17.39%)
Mutual labels:  reactive, rxjava2
Feign Reactive
Reactive Feign client based on Spring WebFlux
Stars: ✭ 131 (+469.57%)
Mutual labels:  reactive, rxjava2
Vertx Auth
Stars: ✭ 122 (+430.43%)
Mutual labels:  reactive, vertx
Hibernate Reactive
A reactive API for Hibernate ORM, supporting non-blocking database drivers and a reactive style of interaction with the database.
Stars: ✭ 167 (+626.09%)
Mutual labels:  reactive, vertx
Knotx
Knot.x is a highly-efficient and scalable integration framework designed to build backend APIs
Stars: ✭ 119 (+417.39%)
Mutual labels:  reactive, vertx
java-modern-tech-practice
😎 Java™ modern tech practice sandbox ⏳
Stars: ✭ 43 (+86.96%)
Mutual labels:  rxjava2, rxkotlin
Hex Arch Kotlin Spring Boot
Reference JVM multi module project for a reactive micro service and lambda using a hexagonal architecture, DDD, Kotlin, Spring Boot, Quarkus, Lambda, Gradle.
Stars: ✭ 83 (+260.87%)
Mutual labels:  reactive, microservice
repolib-android
RepoLib Rx - Android
Stars: ✭ 13 (-43.48%)
Mutual labels:  rxjava2, rxkotlin
RxData
RxData is Android mobile library for building reactive data flow in Android application.
Stars: ✭ 44 (+91.3%)
Mutual labels:  rxjava2, rxkotlin

Demonstration of Eclipse Vert.x, Kotlin, RxJava2 and Kubernetes

This repository contains several reactive services to be deployed in Kubernetes.

  1. temperature-service is a service simulating a temperature sensor. This is basic Vert.x with callbacks, multiple verticles and communication over the event bus. (Vert.x web, Kotlin support)
  2. temperature-gateway is a service that aggregates temperature data from the available temperature services. RxJava2/Kotlin simplifies the reasoning for doing concurrent HTTP requests. (Vert.x web / web client / service discovery, RxJava2)
  3. zlack is a chat application, exposing an API and a reactive VueJS interface. It provides real-time message deliveries and shows how the Vert.x event bus can be extended to client-side applications and offer a unified message-passing programming model. (Vert.x web / web client / SockJS event bus bridge / RxJava 2 / MongoDB / VueJS)
  4. temperature-to-zlack-service is a service that gathers all temperatures from the gateway, and notifies in the Zlack chat of all sensors having a temperature above a threshold. It uses Kotlin coroutines to show how a more traditional "synchronous-style" programming model can be used to coordinate operations. (Vert.x web client / Kotlin coroutines / minimal liveness reporting)

The kubernetes folder contains resource descriptors and notes for Kubernetes and minikube.

Building

Building all services should be as simple as:

./gradlew assemble

While developing a Vert.x service you can have live-reload, as in:

./gradlew :temperature-gateway:vertxRun

Deploying

The following assumes a local testing environment with minikube.

Building all Docker images and creating Kubernetes resources can then be done using:

./deploy-to-kube.sh

...or calling the Gradle task that delegates to this script:

./gradlew deployToKube

If you are not deploying to minikube:

  1. all sub-projects have corresponding Dockerfile files, and
  2. all Kubernetes resource files are in kubernetes/.

Legal stuff

This was originally written by Julien Ponge and is distributed under the terms of the Apache License Version 2.0

Copyright 2018 Julien Ponge

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Contributing

Contributions are welcome, please use GitHub pull requests!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].