{"id":37403753,"url":"https://github.com/muharihar/d3ta-go","last_synced_at":"2026-01-16T05:48:35.656Z","repository":{"id":57544120,"uuid":"283576301","full_name":"muharihar/d3ta-go","owner":"muharihar","description":"A Simple Implementation of Domain-Driven Design Technical Architecture Patterns in Go.","archived":false,"fork":false,"pushed_at":"2022-09-30T20:21:15.000Z","size":4887,"stargazers_count":75,"open_issues_count":1,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-06-18T20:05:06.063Z","etag":null,"topics":["adapters","connectors","curd","ddd","ddd-architecture","ddd-layered","ddd-patterns","multidatabase"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muharihar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-29T18:43:19.000Z","updated_at":"2024-04-10T15:10:26.000Z","dependencies_parsed_at":"2023-01-18T22:45:58.965Z","dependency_job_id":null,"html_url":"https://github.com/muharihar/d3ta-go","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/muharihar/d3ta-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muharihar%2Fd3ta-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muharihar%2Fd3ta-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muharihar%2Fd3ta-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muharihar%2Fd3ta-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muharihar","download_url":"https://codeload.github.com/muharihar/d3ta-go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muharihar%2Fd3ta-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["adapters","connectors","curd","ddd","ddd-architecture","ddd-layered","ddd-patterns","multidatabase"],"created_at":"2026-01-16T05:48:35.548Z","updated_at":"2026-01-16T05:48:35.637Z","avatar_url":"https://github.com/muharihar.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DDD Technical Architecture Patterns: Golang\n\nA Simple Implementation of `DDD Technical Architecture Patterns` in Go.\n\nModular Version: https://github.com/d3ta-go\n\n## Diagram v 0.2.2\n\n![DDD-Technical-Architecture-Patterns-Golang-0.2.2](docs/img/DDD-Technical-Architecture-Patterns-Golang-0.2.2.png)\n\n### Components\n\nA. Interface Layer (Composite Interface)\n\n1. REST API - using Echo Framework\n\nB. Modules:\n\n1. Geolocation - using CRUD Architecture Pattern (GORM)\n2. Authentication - using DDD Layered Architecture (GORM)\n3. Email - using DDD Layered Architecture (GORM, SMTP)\n4. Covid19 - using DDD Layered Architecture (Adapters -\u003e Connectors)\n\nC. Common System Libraries:\n\n1. Configuration - using yaml\n2. Identity \u0026 Securities - using JWT, Casbin (RBAC)\n3. Email Sender - using SMTP\n\nD. Others\n\n1. Migrations - using GORM\n\nE. Databases\n\n1. MySQL (tested)\n2. PostgreSQL (untested)\n3. SQLServer (untested)\n4. SQLite3 (untested)\n\nF. Providers (Connectors)\n\n1. data.covid19.go.id (Official Covid19 Website - Indonesia)\n2. covid19.who.it (Official Covid19 Website - WHO)\n\nG. Persistent Caches\n\n1. Session/Token/JWT Cache (Redis, File, DB, etc) [tested: Redis]\n2. Indexer/Search Cache (ElasticSearch)\n\nH. Messaging [to-do]\n\nI. Logs [to-do]\n\n### Development\n\n1. Clone\n\n```shell\n$ git clone https://github.com/muharihar/d3ta-go.git\n```\n\n2. Setup\n\n```\na. copy `conf/config-sample.yaml` to `conf/config.yaml`\n\nb. setup your dependencies/requirements (e.g: database, redis, smtp, etc.)\n```\n\n3. Development\n\n```shell\n$ cd d3ta-go\n$ go run main.go db migrate\n$ go run main.go server restapi\n```\n\n4. Build\n\n```shell\n$ cd d3ta-go\n$ go build\n$ ./d3ta-go db migrate\n$ ./d3ta-go server restapi\n```\n\n5. Distribution [to-do]\n\n```shell\n$ cd d3ta-go\n$ sh dist.sh\n```\n\nPic: REST Server is running!\n\n![Server-REST-01.png](docs/img/Server-REST-01.png)\n\nSwagger UI URL Address: http://localhost:2020/openapi/docs/index.html\n\n![Swagger-ui-01.png](docs/img/Swagger-ui-01.png)\n\n5. Postman [to-do]\n\n### References:\n\n1. [Book] Domain-Driven Design: Tackling Complexity in the Heart of Software 1st Edition (Eric Evans, 2004)\n2. [Book] Patterns, Principles, and Practices of Domain-Driven Design (Scott Millett \u0026 Nick Tune, 2015)\n\n### Team \u0026 Maintainer:\n\n1. Muhammad Hari (https://www.linkedin.com/in/muharihar/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuharihar%2Fd3ta-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuharihar%2Fd3ta-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuharihar%2Fd3ta-go/lists"}