services-users

command
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2025 License: MIT Imports: 16 Imported by: 0

README

services-users (example)

Contoh service users menggunakan go-micro-libs berarsitektur DDD + bootstrap modular:

  • Config (file provider + watcher)
  • Logging (console/logrus)
  • Communication HTTP provider (tanpa mux custom)
  • Discovery (Consul)
  • Messaging (Kafka) publish/subscribe
  • Monitoring (Prometheus)
  • Database (PostgreSQL) via DatabaseManager
  • Rate Limit (in-memory) token bucket
  • Circuit Breaker (gobreaker)
  • Failover (Consul provider)

Menjalankan

  1. Set konfigurasi di examples/services-users/config.yaml atau environment variables:
export CONFIG_PATH=./examples/services-users/config.yaml
export CONSUL_ADDR=localhost:8500
export PROM_HOST=localhost
export SERVICE_ID=user-service-1
# Postgres
export PGHOST=localhost
export PGPORT=5432
export PGUSER=postgres
export PGPASSWORD=postgres
export PGDATABASE=users
  1. Jalankan contoh:
go run ./examples/services-users

Service akan:

  • Start HTTP di port dari server.port
  • Register ke Consul
  • Connect ke Kafka
  • Connect ke Prometheus (mock connect)
  • Connect ke PostgreSQL
  • Subscribe topic Kafka (kafka.topic) dan handle event user.upsert/user.created
  • Terapkan rate limit dan circuit breaker di endpoint Users

Hentikan dengan Ctrl+C. Service akan deregister dari Consul dan menutup koneksi.

Catatan

  • Pastikan Kafka dan Consul berjalan secara lokal atau update env/config sesuai environment.
  • Anda bisa menambahkan provider lain (file logging, elasticsearch logging, jaeger, dll) sesuai kebutuhan.
  • Untuk database, buat tabel:
CREATE TABLE IF NOT EXISTS users (
  id         text PRIMARY KEY,
  email      text UNIQUE NOT NULL,
  name       text NOT NULL,
  created_at timestamptz NOT NULL,
  updated_at timestamptz NOT NULL
);
  • Failover: bootstrap tersedia di internal/bootstrap/failover.go. Daftarkan endpoint ke Consul agar failover dapat memilih endpoint sehat.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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