https://github.com/cuchi/kittens
Sample service using Node.js + gRPC + nact
https://github.com/cuchi/kittens
grpc microservice nact node
Last synced: 7 months ago
JSON representation
Sample service using Node.js + gRPC + nact
- Host: GitHub
- URL: https://github.com/cuchi/kittens
- Owner: cuchi
- Created: 2018-01-04T12:47:29.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-01-09T01:29:09.000Z (over 7 years ago)
- Last Synced: 2025-01-28T11:48:27.949Z (8 months ago)
- Topics: grpc, microservice, nact, node
- Language: JavaScript
- Homepage:
- Size: 32.2 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kittens

## What
This is an example of a microservice application that implements a simple CRUD,
built using Node.js + nact + gRPC.## Why
The sole purpose of this project is to use bleeding-edge technologies to build a
scaffold of a microservice, which should be by default:
- Safe
- Performatic
- Scalable
- Resilient
- Easy to build
- Easy to understand
- Easy to maintain
- Flexible## How
Every piece of technology used in this repository can help the developer (you!)
to achieve the goals above, let's see how:- **Node.js** provides a very powerful event-driven javascript runtime with a
great balance between performance and memory footprint.
- **Babel** is used to compile the source code to run inside Node.js. The code
used in this project is the modern JavaScript (ES7) with custom operators
that enable easier and more idiomatic functional programming style.
- **nact** implements the actor model of the good ol' Erlang. This is a very
efficient approach to handle concurrency of applications that are either
stateful or stateless. Also, code decoupling comes for absolutely free.
- **gRPC** is a minimalist high-performance RPC framework. It uses protocol
buffers, which are a great way to define _type-safe_ requisitions and
responses of microservices.## DISCLAIMER
The text above is **mostly** opinionated and this example is not meant to be an
silver bullet for everything. If some of this doesn't work for you, open an
issue! Maybe we both can improve our knowledge :)## Checklist
- [x] `.proto` definitions
- [x] Initial CRUD
- [ ] Tests
- [x] Docker
- [ ] Travis CI