Digota

电子商务微服务。(ecommerce microservice)

Github星跟蹤圖

Logo

Digota - ecommerce microservice Go Report Card Build Status Coverage Status Gitter chat

Digota is ecommerce microservice built to be the modern standard for ecommerce systems.It is based on grpc,protocol-buffers and http2 provides clean, powerful and secured RPC interface.

Our Goal is to provide the best technology that covers most of the ecommerce flows, just focus of your business logic and not on the ecommerce logic.

TLDR; scalable ecommerce microservice.

Join our community at gitter !

Getting started

Prerequisites

  • Go > 1.8
  • Database
    • mongodb > 3.2
    • redis (TBD)
    • postgresql (TBD - #2)
  • Lock server (default is in-memory locker)
    • zookeeper
    • redis !! (thanks @Gerifield)
    • etcd (TBD - #3)

Installation

From source

$ go get -u github.com/digota/digota

From docker hub

$ docker pull digota/digota:0.1

Run

$ docker run digota/digota:0.1

Or with flags

$ docker run digota/digota:0.1 bash -c "digota --version"

Check out this docker-compose for more details.

Flags:
--info Set log level to info
--debug Set log level to debug
--help, -h show help
--version, -v print the version

Cross languages

Key benefit of using grpc is the native support of major languages (C++,Java,Python,Go,Ruby,Node.js,C#,Objective-C,Android Java and PHP).
Learn How to compile your client right here, You can use you Makefile as well.

Complied clients:

  1. php

Flexible payment gateways

It does not matter which payment gateway you are using, it is just matter of config to register it.

Supported gateways for now:

  1. Stripe
  2. Braintree

Are you payment provider ?
Just implement the following interface and PR you changes.

Auth & Security

We take security very seriously, don't hesitate to report a security issue.

Digota is fully Encrypted (end-to-end) using TLS, That fact is leveraged also to Authenticate Clients based on their Certificate in front of the Local Certificate Authority.
Basically we are creating CA and signing any certificate we want to approve with same CA.

How about revoking certificate? The CRL approch here is whitelist instead of blacklist, just remove client serial from your config.

Create CA
$ certstrap init --common-name "ca.company.com"
Create Client Certificate
$ certstrap request-cert --domain client.company.com
Sign Certificate
$ certstrap sign --CA "ca.company.com" client.company.com
Approve Certificate

Take the certificate serial and Append the serial and scopes(WRITE,READ,WILDCARD) to your config

$ openssl x509 -in out/client.com.crt -serial

主要指標

概覽
名稱與所有者digota/digota
主編程語言Go
編程語言Makefile (語言數: 4)
平台Docker, Linux, Mac, Windows
許可證MIT License
所有者活动
創建於2017-08-14 12:01:37
推送於2021-02-14 21:42:48
最后一次提交2018-10-15 00:51:54
發布數1
最新版本名稱v0.1.0 (發布於 )
第一版名稱v0.1.0 (發布於 )
用户参与
星數515
關注者數29
派生數84
提交數89
已啟用問題?
問題數18
打開的問題數10
拉請求數11
打開的拉請求數1
關閉的拉請求數3
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?