All Projects → LearningByExample → KotlinReactiveMS

LearningByExample / KotlinReactiveMS

Licence: MIT license
An educational project to learn reactive programming with Spring 5 and Kotlin

Programming Languages

kotlin
9241 projects
shell
77523 projects
HTML
75241 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to KotlinReactiveMS

Reactive Ms Example
An educational project to learn reactive programming with Spring 5
Stars: ✭ 157 (+375.76%)
Mutual labels:  reactive, reactive-streams, reactive-programming, reactor, api-rest, apis
sample-spring-reactive
sample reactive microservices using spring 5, spring boot, spring webflux and project reactor
Stars: ✭ 26 (-21.21%)
Mutual labels:  reactive, reactive-programming, reactor, spring-webflux
spring-five-functional-reactive
No description or website provided.
Stars: ✭ 20 (-39.39%)
Mutual labels:  reactive, spring5, webflux, spring-reactive
webflux-streaming-demo
A tryout of reactive application using Spring 5 WebFlux and mongoDB, along with an overview article on reactive programming.
Stars: ✭ 96 (+190.91%)
Mutual labels:  reactive-streams, reactive-programming, spring5, webflux
kotlin-kafka-and-kafka-streams-examples
Kafka with KafkaReactor and Kafka Streams Examples in Kotlin
Stars: ✭ 33 (+0%)
Mutual labels:  reactive-streams, reactive-programming, reactor, webflux
assembler
Functional, type-safe, stateless reactive Java API for efficient implementation of the API Composition Pattern for querying/merging data from multiple datasources/services, with a specific focus on solving the N + 1 query problem
Stars: ✭ 102 (+209.09%)
Mutual labels:  reactive, reactive-streams, reactive-programming, reactor
Rxcombine
Bi-directional type bridging between RxSwift and Apple's Combine framework
Stars: ✭ 741 (+2145.45%)
Mutual labels:  reactive, reactive-streams, reactive-programming
Scalecube Services
v2.0 - ScaleCube Services provides a low latency Reactive Microservices library for serverless service registry and discovery based on gossip protocol and without single point-of-failure or bottlenecks.
Stars: ✭ 23 (-30.3%)
Mutual labels:  reactive, reactive-streams, reactor
springboot-rsocketjwt-example
Example of using JWT with RSocket and Spring Boot
Stars: ✭ 26 (-21.21%)
Mutual labels:  reactive, reactive-streams, reactive-programming
Rsocket Rpc Java
Standard RSocket RPC Java Implementation
Stars: ✭ 126 (+281.82%)
Mutual labels:  reactive, reactive-streams, reactive-programming
Reactor Netty
TCP/HTTP/UDP/QUIC client/server with Reactor over Netty
Stars: ✭ 1,743 (+5181.82%)
Mutual labels:  reactive, reactive-streams, reactor
netifi-quickstart-java
Project to assist you in getting started using Netifi.
Stars: ✭ 23 (-30.3%)
Mutual labels:  reactive, reactive-streams, reactive-programming
Rxjava2 Jdbc
RxJava2 integration with JDBC including Non-blocking Connection Pools
Stars: ✭ 360 (+990.91%)
Mutual labels:  reactive, reactive-streams, reactive-programming
R2dbc Client
Reactive Relational Database Connectivity
Stars: ✭ 347 (+951.52%)
Mutual labels:  reactive, reactive-streams, reactor
Rxdownloader
- Reactive Extension Library for Android to download files
Stars: ✭ 40 (+21.21%)
Mutual labels:  reactive, reactive-streams, reactive-programming
Entwine
Testing tools and utilities for Apple's Combine framework.
Stars: ✭ 306 (+827.27%)
Mutual labels:  reactive, reactive-streams, reactive-programming
Awesome Reactive Programming
A repository for sharing all the resources available on Reactive Programming and Reactive Systems
Stars: ✭ 163 (+393.94%)
Mutual labels:  reactive, reactive-streams, reactive-programming
Reactor Addons
Official modules for the Reactor project
Stars: ✭ 175 (+430.3%)
Mutual labels:  reactive, reactive-streams, reactor
reacted
Actor based reactive java framework for microservices in local and distributed environment
Stars: ✭ 17 (-48.48%)
Mutual labels:  reactive, reactive-streams, reactive-programming
mongo-images
Ever wonder how you can create a full stack reactive application that also saves images? Well look no further! We've got Spring Webflux, Reactive Mongo Streams with GridFS, and Angular5!
Stars: ✭ 12 (-63.64%)
Mutual labels:  reactive-streams, reactive-programming, webflux

Kotlin Reactive Micro Services Example

License: MIT Build Status codecov codebeat badge

IntelliJ code coverage runner gives a 100%, unfortunately I've not managed to get the same results using codecov.io and JaCoCo

info

This is an example of doing reactive MicroServices using spring 5 functional web framework and spring boot 2 using Kotlin.

This is a fork of the original java version.

This service provide and API that will get the geo location and the sunrise and sunset times from an address.

Scenario: Get Location
  Given I've an address
  When I call the location service
  Then I should get a geo location
  And I should get the sunrise and sunset times

To implement this example we consume a couple of REST APIs.

This example cover several topics:

  • Functional programing.
  • Reactive types.
  • Router Functions.
  • Static Web-Content.
  • Creation on Reactive Java Services/Components.
  • Error handling in routes and services.
  • Reactive Web Client to consume external REST Services.
  • Organizing your project in manageable packaging.

Includes and in depth look to testing using JUnit5:

  • Unit, Integration and System tests.
  • Mocking, including reactive functions and JSON responses.
  • BDD style assertions.
  • Test tags with maven profiles.

Sample requests

Get from address

$ curl -X GET "http://localhost:8080/api/location/Trafalgar%20Square%2C%20London%2C%20England" -H  "accept: application/json"

Post from JSON

$ curl -X POST "http://localhost:8080/api/location" -H  "accept: application/json" -H  "content-type: application/json" -d "{  \"address\": \"Trafalgar Square, London, England\"}"

Both will produce something like:

{
  "geographicCoordinates": {
    "latitude": 51.508039,
    "longitude": -0.128069
  },
  "sunriseSunset": {
    "sunrise": "2017-05-21T03:59:08+00:00",
    "sunset": "2017-05-21T19:55:11+00:00"
  }
}

All date and times are ISO 8601 UTC without summer time adjustment

API

View in the embedded Swagger UI View in the embedded Swagger UI

Run in Postman Run in Postman

Project Structure

References

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].