A set of regular microservices for practice and reference.
- :
Not started yet
, no code base created - :
Initialized
, setup code base with default router, few lines of doc - :
Implementing
, working on the functions - :
Basic implementation
, main function works, but incomplete - :
Done
, finish main function, standardize data format, fully tested
- Programming languages: Node.js, Deno, Python, Golang, Vlang
- Databases: MongoDB, Postgres, SQLite, Redis/KeyDB, InfluxDB
- Job queue: bull, celary, rqueue, etc
- Testing tools: Jest, pytest
- DevOps: Docker, Drone, nginx, Traefic, HAProxy
- Machine Learning: TensorFlow, PyTorch, spaCy, fasttext
And not only that, of course :)
If you would like to learn more about micro services, or a new programming language, or one of the above tech stacks, feel free to contribute.
To keep things consistent for others, please refer the next section.
Each of service should be stored within a separate folder. These folders must be named in dash-case style by the format of {SERVICE NAME}-{LANGUAGE}, for examples:
article-parser-node
feed-parser-py
email-sender-go
Each of service must have a service.json
file to declare name, version and some basic configs.
{
"name": "Article Parser service in Go",
"version": "1.0.0",
"host": "0.0.0.0",
"port": 7251
}
These values should be used to introduce the service at its starting time:
All services must be able to containerized.
The images should be carefully selected. Good to use the minimal ones, or those are designed for microservice.
The containers should be configured to run within the same virtual network named micro-net
, so please create it at first.
docker network create micro-net
It's recommended to apply Functional Programming style here.
- Node.js, JavaScript: standardjs
- Python: PEP8
- Golang: default
- Vlang: default
- Deno: not defined yet
- JSON output format: jsend and Google JSON Style Guide
The MIT License (MIT)