• Stars
    star
    148
  • Rank 249,983 (Top 5 %)
  • Language
    Go
  • Created about 6 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Little API to demonstrate various microservice design principles and technologies

Gira (A Hex Example)

This is a sample project that was originally supposed to be and example of hexagonal architecture. It has slowly evolved to incorporate other ideas and product integrations.

Gira is a really simple ticket management API. You can create and fetch ticket (that's it). The application is flexible in that it can run as either a AWS Lambda function or a standalong server. It also allows you to swap backend database (between Redis or Postgres).

This project will continue to evolve and change depending on things I'm interested in learning.

Explored Areas

Build

go build main.go

Test

go test ./...

Run

./main - runs in lambda mode with a redis instance

Flags

--database - either redis or psql

--server - runs in sever mode

Environment

DATABASE_URL - Override local database url

REDIS_PASSWORD - Override default Redis Password

Run Acceptance Tests

cd tests/acceptance
source .env
robot -v HOST:${endpoint} tickets.robot