Skip to content

ctiom/kitchen

Repository files navigation

Kitchen Framework

Introduction

Kitchen is a framework that's designed in Champion Tech to build expendable, consistent and debuggable modular monolith service.

The main philosophy of Kitchen is to call methods indirectly. Since the methods are indirectly called, we can easily monitor, trace and even forward the request foreign node when necessary.

(External calling not yet implemented)

Overview

Key Features

  • Tracing / logging / metrics
  • Swagger support
  • Standardised error handling
  • Concurrency management
  • Pipeline for state management
  • Asynchronous process

Introduction

There are few components in the framework that are used to build the API.

type UserApi struct { // Menu
	kitchen.MenuBase[*UserApi, *SimpleDependency] // Dependency of Menu
	User struct { // SubMenu / Set
      kitchen.SetBase[*SimpleDependency] // Dependency of SubMenu
		  Get kitchen.Dish[*SimpleDependency, *model.GetUserRequest, *model.GetUserResponse] // Placeholder (Dish)
	}
}

recipe.UserAPI.User.Get.SetCooker(userService.GetUser) // Handler (Cooker)

Menu is a collection of SubMenu and Dish.

Dependency is the struct that inject the dependencies to the Cooker.

SubMenu is a collection of Dish.

Dish is a placeholder for the actual handler.

Cooker is the actual handler.

Guides

Contributors

About

Golang proxify development framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages