8000 Releases · go-orb/go-orb · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: go-orb/go-orb

v0.4.1

07 Apr 19:26
acfea00
Compare
Choose a tag to compare

v0.4.0

05 Apr 02:45
Compare
Choose a tag to compare
  • Add context as first parameter for kvstore.

Full Changelog: v0.3.0...v0.4.0

v0.3.0 beta

26 Mar 11:27
8c4dcbe
Compare
Choose a tag to compare

Overview

Go Orb v0.3.0 Beta introduces significant improvements and new features to enhance the framework's performance, flexibility, and developer experience. This release focuses on improving service discovery, communication, and resource management.

Key Changes and New Features

Registry API Overhaul

  • Enhanced Service Discovery: Completely redesigned registry API with improved filtering capabilities
  • Performance Improvements: Added caching for faster service lookups
  • Unix Socket Support: Native support for Unix sockets enabling high-performance local communication

Client Enhancements

  • Renamed API Methods: Call() method renamed to Request() for clarity and consistency
  • Resilient Service Calls: Added retry logic as middleware for more robust service communication
  • Improved Transport Selection: Enhanced transport mechanism with Unix socket support
  • Streaming Capabilities: Implemented streaming for efficient client-server communication

Server Improvements

  • Enhanced Component Handling: Improved lifecycle management of server components
  • Memory Server Implementation: Added in-memory server for testing purposes and monoliths.
  • Improved Entrypoint Configuration: Simplified server setup and configuration

Context-Aware Components

  • Resource Management: Modified Start() and Stop() methods to accept context for better resource management
  • Graceful Shutdown: Improved handling of service shutdown with context propagation

Streaming Support

  • Bidirectional Communication: Added support for bidirectional streaming between client and server
  • Stream Middleware: Implemented middleware support for stream processing
  • Multiple Transport Support: Streaming works across memory, gRPC and DRPC transports
  • Efficient Data Transfer: Optimized for high-throughput and low-latency data streaming
  • Context Propagation: Stream context is properly propagated through the entire communication chain

Configuration System

  • Simplified Access: Redesigned configuration as a merged map[string]any for easier access and manipulation
  • Context Integration: Introduced AppContext, ServiceContext, and ServiceContextWithConfig for better context management

Key-Value Store Interface

  • Storage Backend Abstraction: Added a new interface for KV store operations
  • Pluggable Storage: Allows for easy switching between different storage backends

Event System

  • Publish/Subscribe Model: Implemented a pub/sub event system for asynchronous communication
  • Decoupled Components: Enables better separation of concerns and more modular architecture

Error Handling

  • Enhanced Error Management: Improved the orberrors package with WrapNew and WrapF methods
  • Better Error Context: More informative error messages with context preservation

Breaking Changes

  • The Call() method has been renamed to Request() in the client API
  • Service node structure now includes network type information
  • Component lifecycle methods now require context parameters

Migration Guide

Updating Client Calls

Before:

resp, err := client.Call(ctx, di, "service.name", "Method.Name", req)

After:

resp, err := client.Request(ctx, di, "service.name", "Method.Name", req)

Using Unix Socket Transport

// Configure Unix socket transport
transport := http.NewTransport(
    http.WithNetwork("unix"),
)

// Create client with Unix socket transport
c := client.NewClient(
    client.WithTransport(transport),
)

Context-Aware Component Lifecycle

Before:

err := component.Start()
// ...
err := component.Stop()

After:

ctx := context.Background()
err := component.Start(ctx)
// ...
err := component.Stop(ctx)

Future Roadmap

See https://github.com/orgs/go-orb/projects/1

Feedback and Contributions

We welcome feedback and contributions to help improve Go Orb. Please submit issues and pull requests through the project repository.

Full Changelog: v0.2.0...v0.3.0

v0.2.1

28 Feb 01:32
acd6ead
Compare
Choose a tag to compare

fixing linting errors.

Full Changelog: v0.1.1...v0.2.1

v0.2.0

28 Feb 01:17
acd6ead
Compare
Choose a tag to compare

Full Changelog: v0.1.1...v0.2.0

v0.1.1

26 Feb 14:32
Compare
Choose a tag to compare

Full Changelog: v0.1.0...v0.1.1

v0.1.0 - First alpha release of go-orb

24 Feb 03:17
Compare
Choose a tag to compare

The README explains very well what has changed since the fork and rewrite of go-micro.dev/v4.

0