Giter Club home page Giter Club logo

nunchistudio / helix.go Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 700 KB

helix.go is the Go implementation of helix, for building cloud-native, consistent, reliable, and high-performance (micro) services with automatic logging, tracing, observability, and event propagation across services and integrations.

Home Page: https://nunchi.studio/helix

License: MIT License

Makefile 0.09% Go 98.89% Shell 1.02%
asyncapi clickhouse data-plane microservices nats nats-jetstream openapi opentelemetry platform-engineering postgres temporal vault cloud devops openfeature distributed-systems distributed-tracing

helix.go's Introduction

helix.go

Website Go API reference Go Report Card GitHub Release License: MIT

helix.go is the Go implementation of helix, for building cloud-native, consistent, reliable, and high-performance (micro) services. It allows back-end engineers to simplify development of complex problems through a thin layer of abstraction that handles automatic logging, tracing, observability, and event propagation across services and integrations.

Event propagation with helix

License

Repository licensed under the MIT License.

helix.go's People

Contributors

loicsaintroch avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

helix.go's Issues

New integration: Temporal

What integrations would be impacted by this request?

No response

Current experience

There's no integration with Temporal.

Expected experience

Add a Temporal integration for workflow orchestration.

Documentation not visible in pkg.go.dev

What helix version are you using?

0.11.x

What OS are you running?

macOS

What architecture are you running?

arm64

What Go version are you running?

1.20.x

What integrations are impacted by this problem?

No response

Unexpected behavior

Because the license is not recognised, pkg.go.dev doesn't show the documentation of the Go library.

Screenshot 2023-06-20 at 17 05 54

Steps to reproduce

Go to https://pkg.go.dev/go.nunchi.studio/helix.

Expected behavior

Developers should have access to a public documentation of the Go library.

Solution: The domain https://go.nunchi.studio should display the packages documentation when visiting from a browser.

Logs

No response

Automatic health check

What integrations would be impacted by this request?

No response

Current experience

There is no way to know the state of an integration because there is no health check method.

Expected experience

The integration.Integration should implement a Status function or equivalent, so each integration can return the status at any point in time.

This should then be automatically leveraged in the REST router integration for the Healthcheck handler function, allowing to have trustworthy status via the HTTP health check endpoint.

NATS: Leverage new JetStream API

What integrations would be impacted by this request?

nats

Current experience

Currently, the NATS integration uses the nats package and creates a JetStream context using the native JetStream() method.

Expected experience

jetstream package is a new client API to interact with NATS JetStream, aiming to replace the JetStream client implementation from nats package. The main goal of this package is to provide a simple and clear way to interact with JetStream API.

The NATS JetStream capabilities must migrate to the new jetstream package offered by nats, but only when key-value methods are implemented.

NATS: Authenticate with NKeys

What integrations would be impacted by this request?

nats

Current experience

As of now there is no authentication mechanism to authenticate against a NATS server.

Expected experience

Authentication with NKeys should be added for stronger security in the NATS JetStream integration.

Temporal: Validate payloads with AsyncAPI

What integrations would be impacted by this request?

temporal

Current experience

As of now, no payload validation is done when running a workflow.

Expected experience

Just like there is OpenAPI support in the REST router integration, AsyncAPI support should be added to Temporal integration for payload validation when running a workflow.

NATS: Validate messages with AsyncAPI

What integrations would be impacted by this request?

nats

Current experience

As of now we can publish and subscribe to messages but no validation is possible.

Expected experience

Just like there is OpenAPI support in the REST router integration, AsyncAPI support should be added to NATS JetStream integration for message validation on publish and subscribe.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.