Skip to content
/ goutils Public

Provides common support packages used in other Golang projects.

License

Notifications You must be signed in to change notification settings

alwitt/goutils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golang Support Packages

MIT Go Report Card CICD

Provides common support components used in other Golang projects.

Components Provided

Component Description Note
Component Base struct for other components Contains the support method NewLogTagsForContext which generates a new copy of the apex logs.Fields metadata structure.
RestAPIHandler Base struct for other REST API handlers Contains utility methods, and a REST request logging middleware.
TaskProcessor An asynchronous job queue system Provides single threaded and multi threaded worker pool implementation.
IntervalTimer Task execution trigger interval timer Operates in periodic or one-shot mode.
PubSubClient PubSub client providing higher layer APIs
RequestResponseClient Support request-response pattern between multiple nodes, where any node can request any other node/s. Currently, SDK only provides a PubSub based client.
MessageBus Application-scoped message passing bus

Getting Started

The provided Makefile contains targets for various development actions. Starting out

make

to prepare the development and verify linters pass. Verify project is working with

NOTE: The PubSub related tests required GCP credential configuration JSON, and the name of the GCP project provided as ENV variables.

  • UNITTEST_GCP_PROJECT_ID - GCP project ID name
  • GOOGLE_APPLICATION_CREDENTIALS - GCP authentication config JSON
make test

to execute all unit-tests.