1. Abstract

This proposal outlines the standard design patterns and architectural guidelines for developing Go-based applications at RidFinance. It aims to establish consistent practices across our fintech infrastructure while ensuring maintainability, testability, and scalability.

2. Motivation

As RidFinance continues to grow, we need standardized patterns for:

3. Core Architecture Principles

3.1 Clean Architecture

RidFinance Go applications should follow clean architecture principles with clear separation of:

project/
├── cmd/                    # Application entry points
├── config/               # Application constant values
├── constants/               # Application configuration options and set up
├── internal/              # Private application code
│   ├── dto/           # Business data transfer object
│   ├── entity/           # Business data entities
│   ├── http/           # http handlers and controllers
│   ├── infrastructure/   # External services implementation (e.g.databases)
│   ├── repository/           # Business database level logic
│   └── services/         # Use case implementations
├── token/                   # JWT token implementation
└── tests/                # Unit and/or Integration tests

3.2 Domain-Driven Design (DDD)