Batasan Heksagonal (Ports & Adapters)
Dalam arsitektur layanan mikro kelas produksi, entitas domain harus sepenuhnya independen dari driver database, router HTTP, dan SDK eksternal.
- Lapisan Domain: Entitas bisnis murni, aturan validasi, dan state invariants.
- Lapisan Aplikasi (Use Cases): Mengorkestrasikan alur data dan mendefinisikan port interface keluar.
- Lapisan Infrastruktur (Adapters): Implementasi PostgreSQL, Kafka consumer, serta klien pihak ketiga.
domain/article_repository.go
type ArticleRepository interface {
GetByID(ctx context.Context, id int64) (*Article, error)
Save(ctx context.Context, article *Article) error
}Catatan rekayasa pribadi dari pengoperasian sistem produksi. Pola dan tolok ukur diperbarui seiring perkembangan runtime.