command module
v0.2.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2020 License: MIT Imports: 1 Imported by: 0


DDD Technical Architecture Patterns: Golang

A Simple Implementation of DDD Technical Architecture Patterms in Go.

Diagram v 0.2.0



A. Interface Layer (Composite Interface)

  1. REST API - using Echo Framework

B. Modules:

  1. Geolocation - using CRUD Architecture Pattern (GORM)
  2. Authentication - using DDD Layered Architecture (GORM)
  3. Email - using DDD Layered Architecture (GORM, SMTP)
  4. Covid19 - using DDD Layered Architecture (Adapters -> Connectors)

C. Common System Libraries:

  1. Configuration - using yaml
  2. Identity & Securities - using JWT, Casbin (RBAC)
  3. Email Sender - using SMTP

D. Others

  1. Migrations - using GORM

E. Databases

  1. MySQL (tested)
  2. PostgreSQL (untested)
  3. SQLServer (untested)
  4. SQLite3 (untested)

F. Providers (Connectors)

  1. data.covid19.go.id (Official Covid19 Website - Indonesia)
  2. covid19.who.it (Official Covid19 Website - WHO)

G. Persistent Caches [to-do]

  1. JWT Cache (Redis, File, DB, etc)
  2. Search Cache (ElasticSearch)

H. Messaging [to-do]

I. Logs [to-do]

  1. Clone
$ git clone https://github.com/muharihar/d3ta-go.git
  1. Setup
a. copy `conf/config-sample.yaml` to `conf/config.yaml`

b. setup your dependencies/requirements (e.g: database connection, smtp, etc.)
  1. Development
$ cd d3ta-go
$ go run main.go db migrate
$ go run main.go server restapi
  1. Build
$ cd d3ta-go
$ go build
$ ./d3ta-go db migrate
$ ./d3ta-go server restapi
  1. Distribution [to-do]
$ cd d3ta-go
$ sh build.sh

Pic: REST Server is running!


Swagger UI URL Address: http://localhost:2020/openapi/docs/index.html


  1. Postman [to-do]
  1. [Book] Domain-Driven Design: Tackling Complexity in the Heart of Software 1st Edition (Eric Evans, 2004)
  2. [Book] Patterns, Principles, and Practices of Domain-Driven Design (Scott Millett & Nick Tune, 2015)
Team & Maintainer:
  1. Muhammad Hari (https://www.linkedin.com/in/muharihar/)


The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL