{"id":17052574,"url":"https://github.com/cuchi/kittens","last_synced_at":"2026-05-04T09:33:38.052Z","repository":{"id":84178619,"uuid":"116259322","full_name":"cuchi/kittens","owner":"cuchi","description":"Sample service using Node.js + gRPC + nact","archived":false,"fork":false,"pushed_at":"2018-01-09T01:29:09.000Z","size":33,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-27T11:12:02.100Z","etag":null,"topics":["grpc","microservice","nact","node"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cuchi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-04T12:47:29.000Z","updated_at":"2018-01-25T13:40:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"42e74700-1e11-4f62-9854-a86973bd0e62","html_url":"https://github.com/cuchi/kittens","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cuchi/kittens","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuchi%2Fkittens","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuchi%2Fkittens/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuchi%2Fkittens/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuchi%2Fkittens/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cuchi","download_url":"https://codeload.github.com/cuchi/kittens/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuchi%2Fkittens/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32601576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grpc","microservice","nact","node"],"created_at":"2024-10-14T10:09:48.828Z","updated_at":"2026-05-04T09:33:38.033Z","avatar_url":"https://github.com/cuchi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kittens\n\n![Kittens Microservice](https://i.imgur.com/PGCGaRf.png)\n\n## What\nThis is an example of a microservice application that implements a simple CRUD,\nbuilt using Node.js + nact + gRPC.\n\n## Why\nThe sole purpose of this project is to use bleeding-edge technologies to build a\nscaffold of a microservice, which should be by default:\n- Safe\n- Performatic\n- Scalable\n- Resilient\n- Easy to build\n- Easy to understand\n- Easy to maintain\n- Flexible\n\n## How\nEvery piece of technology used in this repository can help the developer (you!)\nto achieve the goals above, let's see how:\n\n- **Node.js** provides a very powerful event-driven javascript runtime with a\n    great balance between performance and memory footprint.\n- **Babel** is used to compile the source code to run inside Node.js. The code\n    used in this project is the modern JavaScript (ES7) with custom operators\n    that enable easier and more idiomatic functional programming style.\n- **nact** implements the actor model of the good ol' Erlang. This is a very\n    efficient approach to handle concurrency of applications that are either\n    stateful or stateless. Also, code decoupling comes for absolutely free.\n- **gRPC** is a minimalist high-performance RPC framework. It uses protocol\n    buffers, which are a great way to define _type-safe_ requisitions and\n    responses of microservices.\n\n## DISCLAIMER\nThe text above is **mostly** opinionated and this example is not meant to be an\nsilver bullet for everything. If some of this doesn't work for you, open an\nissue! Maybe we both can improve our knowledge :)\n\n## Checklist\n- [x] `.proto` definitions\n- [x] Initial CRUD\n- [ ] Tests\n- [x] Docker\n- [ ] Travis CI\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcuchi%2Fkittens","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcuchi%2Fkittens","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcuchi%2Fkittens/lists"}