Pip.Services Docs for Golang toolkit

Welcome to the Pip.Services documentation site!

Pip.Services Toolkit is a collection of patterns and components to simplify the development of microservice systems using multiple programming languages, and enabling deployment onto various on-premises and cloud platforms. With these patterns you can create highly customizable microservices composed of loosely coupled components that process information, persist data in relational and NoSQL databases, communicate through synchronous and asynchronous protocols, monitor performance, process errors, and much more. Moreover, Pip.Services can easily be extended and can coexist with other libraries and frameworks, thanks to its design being built on composition, not inheritance.

Pip.Services is a true polyglot. At the moment, it supports 6 programming languages: .NET, Java, Node.js, Python, Golang, and Dart. Common design principles and code structures, as well as symmetric implementation allow developers to easily move from one language to another in the shortest time possible. And interoperability enables compatibility between microservices written in different languages, right out of the box.

This guide will help you to learn Pip.Services and to develop your own microservices with it.

Getting started

How to get up and running with Pip.Services toolkit in minutes


Deep, in-context explorations of enterprise microservice development topics, leaving you ready to implement real-world solutions.

API documentation

Detail documentation on the toolkit API


Quick, hands-on instructions for solving typical development problems

Other languages

Node.js icon
Dotnet icon
Golang icon
Dart icon
Python icon
Java icon


Commons module

This module is a part of the Pip.Services polyglot microservices toolkit. It provides a set of tools used in microservices or backend services. It is designed to facilitate symmetric implementation accross different programming languages.

Components module

Container module

IoC container for Golang

This module is a part of the Pip.Services polyglot microservices toolkit. It provides an inversion-of-control (IoC) container used to facilitate the development of services and applications composed of loosely coupled components.

The module containes a basic in-memory container that can be embedded inside a service or application, or can be run by itself. The second container type can run as a system level process and can be configured via command line arguments. Also, it can be used to create docker containers.

The containers can read configuration from JSON or YAML files, and use it as a recipe for instantiating and configuring components. Component factories are used to create components based on their locators (descriptor) defined in the container configuration. The factories shall be registered in containers or dynamically in the container configuration file.

How to Get Help

Contributing to Pip.Services