Skip to content

Releases: ergo-services/ergo

v2.0.0

14 Oct 09:27
Compare
Choose a tag to compare

We have to make another release of v2.0.0 due to https://go.dev/blog/v2-go-modules. More details here https://github.com/ergo-services/ergo#versioning

  • Added support of Erlang/OTP 24 (including Alias feature and Remote Spawn introduced in Erlang/OTP 23)
  • Important: This release includes refined API (without backward compatibility) for a more convenient way to create OTP-designed microservices. Make sure to update your code.
  • Important: Project repository has been moved to https://github.com/ergo-services/ergo. It is still available on the old URL https://github.com/halturin/ergo and GitHub will redirect all requests to the new one (thanks to GitHub for this feature).
  • Introduced new behavior gen.Saga. It implements Saga design pattern - a sequence of transactions that updates each service state and publishes the result (or cancels the transaction or triggers the next transaction step). gen.Saga also provides a feature of interim results (can be used as transaction progress or as a part of pipeline processing), time deadline (to limit transaction lifespan), two-phase commit (to make distributed transaction atomic). Here is example examples/gensaga.
  • Introduced new methods Process.Direct and Process.DirectWithTimeout to make direct request to the actor (gen.Server or inherited object). If an actor has no implementation of HandleDirect callback it returns ErrUnsupportedRequest as a error.
  • Introduced new callback HandleDirect in the gen.Server interface as a handler for requests made by Process.Direct or Process.DirectWithTimeout. It should be easy to interact with actors from outside.
  • Introduced new types intended to be used to interact with Erlang/Elixir
    • etf.ListImproper to support improper lists like [a|b] (a cons cell).
    • etf.String (an alias for the Golang string) encodes as a binary in order to support Elixir string type (which is binary() type)
    • etf.Charlist (an alias for the Golang string) encodes as a list of chars []rune in order to support Erlang string type (which is charlist() type)
  • Introduced new methods Node.ProvideRemoteSpawn, Node.RevokeRemoteSpawn, Process.RemoteSpawn.
  • Introduced new interfaces Marshaler (method MarshalETF) and Unmarshaler (method UnmarshalETF) for the custom encoding/decoding data.
  • Improved performance for the local messaging (up to 3 times for some cases)
  • Added example examples/http to demonsrate how HTTP server can be integrated into the Ergo node.
  • Added example examples/gendemo - how to create a custom behavior (design pattern) on top of the gen.Server. Take inspiration from the gen/stage.go or gen/saga.go design patterns.
  • Added support FreeBSD, OpenBSD, NetBSD, DragonFly.
  • Fixed RPC issue #45
  • Fixed internal timer issue #48
  • Fixed memory leaks #53
  • Fixed double panic issue #52
  • Fixed Atom Cache race conditioned issue #54
  • Fixed ETF encoder issues #64 #66

v1.2.6

09 Aug 17:12
Compare
Choose a tag to compare

This release includes hot fixes

  • fix GenServer panic handling
  • fix ETF encoding nested pointer to the value (#66)

v1.2.5

29 Jul 06:54
Compare
Choose a tag to compare

This release includes hotfixes

  • #54 fix Atom Cach race conditioned issue
  • #64 fix ETF encoder panic

v1.2.4

30 Jun 14:39
b9e151b
Compare
Choose a tag to compare

This release includes hotfixes

  • #52 (double panic in Spawn handler)
  • #53 (memory leaks due to missing Contex canceling)

v1.2.3

11 May 08:12
Compare
Choose a tag to compare
remove reading the channel. new timer behavior makes me mad :(

v1.2.2

11 May 07:12
Compare
Choose a tag to compare

This release is the hot fix of this issue #45

v1.2.1

29 Apr 13:40
Compare
Choose a tag to compare

Hot fix release

v1.2.0

06 Apr 13:49
0f1f7a3
Compare
Choose a tag to compare

Introduced TLS support, GenStage behavior, static route, and a lot of fixes. More details in README.md/ChangeLog.md

v1.1.0

22 Apr 21:13
be991fa
Compare
Choose a tag to compare

Fragmentation support and significant performance improvements

v1.0.0

02 Mar 22:16
Compare
Choose a tag to compare

The new release delivers a bunch of new features. See ChangeLog.md for the details