transaction_reader

command module
v0.0.0-...-ce68c90 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2017 License: MIT Imports: 13 Imported by: 0

README

transaction_reader

Should be the same as the github repo name but it isn't always.

Circle CIGo Report Card Coverage Status

Introduction

What is this service and what is it for? What other services does it depend on

UPP - event reader, reads from a DynamoDB table, 'Transactions'.

If the table does NOT exist, this service will return no results, rather than erroring.

If the table exists, it is expected to have a primary key of 'transactionID'. It will also have a secondary index on 'UUID' - not unique, there will be multiple records with the same UUID.

Installation

How can I install it

Download the source code, dependencies and test dependencies:

    go get -u github.com/kardianos/govendor
    go get -u github.com/Financial-Times/transaction_reader
    cd $GOPATH/src/github.com/Financial-Times/transaction_reader
    govendor sync
    go build .

Running locally

How can I run it

  1. Download and install local DynamoDB: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

  2. Start it running

  3. Run the tests and install the binary:

     govendor sync
     govendor test -v -race
     go install
    
  4. Run the app binary (using the help flag to see the available optional arguments):

     $GOPATH/bin/transaction_reader [--help]
    

Options:

    --app-system-code="transaction_reader"            System Code of the application ($APP_SYSTEM_CODE)
    --app-name="transaction_reader"                   Application name ($APP_NAME)
    --port="8080"                                     Port to listen on ($APP_PORT)
  1. Test:

    1. Either using curl:

       curl http://localhost:8080/people/143ba45c-2fb3-35bc-b227-a6ed80b5c517 | json_pp
      
    2. Or using httpie:

       http GET http://localhost:8080/people/143ba45c-2fb3-35bc-b227-a6ed80b5c517
      

Build and deployment

How can I build and deploy it (lots of this will be links out as the steps will be common)

Service endpoints

What are the endpoints offered by the service

e.g.

GET

Using curl:

curl http://localhost:8080/people/143ba45c-2fb3-35bc-b227-a6ed80b5c517 | json_pp`

Or using httpie:

http GET http://localhost:8080/people/143ba45c-2fb3-35bc-b227-a6ed80b5c517

The expected response will contain information about the person, and the organisations they are connected to (via memberships).

Based on the following google doc.

Utility endpoints

Endpoints that are there for support or testing, e.g read endpoints on the writers

Healthchecks

Admin endpoints are:

/__gtg

/__health

/__build-info

These standard endpoints do not need to be specifically documented.

This section should however explain what checks are done to determine health and gtg status.

There are several checks performed:

e.g.

  • Checks that a connection can be made to Neo4j, using the neo4j url supplied as a parameter in service startup.

Other information

Anything else you want to add.

e.g. (NB: this example may be something we want to extract as it's probably common to a lot of services)

Logging
  • The application uses logrus; the log file is initialised in main.go.
  • Logging requires an env app parameter, for all environments other than local logs are written to file.
  • When running locally, logs are written to console. If you want to log locally to file, you need to pass in an env parameter that is != local.
  • NOTE: /__build-info and /__gtg endpoints are not logged as they are called every second from varnish/vulcand and this information is not needed in logs/splunk.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

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