- Don't log errors from within backoff loop (#391)
- Update metrics documentation and scripts (#390)
- Fix debugger and metrics for Kubernetes single-container mode (#389)
- Prioritize non-sidecar mode on Kubernetes (#386)
- Update kar-logstack.md (#385)
- Support multiple kind versions; add kind 0.19.0 (#383)
- Update k3d ingress setup (#380)
- Remove placeholder value for redis password (#379)
- Revert #351 - Container Shipping application assumes co-mingled primary/submap state in getAll
- General refresh of dependencies
- Update Kafka version to 3.3 and ZooKeeper to 3.8
- Update JavaScript SDK, examples, and Dockerfiles to use Node.js 18
- Update Java SDKs to OpenLiberty 23.0.0.3 and Quarkus 2.16.Final
- Switch from adoptopenjdk to eclipse-temurin as base Java Dockerfiles
- Update core docker image to alpine 3.17
- Update core to go 1.19
- Update scripts to use kind 0.18 with Kubernetes 1.24
- Bug fixes
- TailCalls should have an infinite request deadline (#350)
- Segregate primary and submap state in getall (#351)
- Changed project CI from TravisCI to GitHub Actions
- New distributed debugger for KAR (#338, #340)
- Upgrade kind from 0.12.0 to 0.14.0 (#333)
- Reenable cancellation as an option (#331)
- Improve documentation for logging and metrics
- Add documentation for Python SDK. (#325)
- Tolerate transient failures to connect to Kafka and Redis during startup
- Add metrics for redis request time and active/canceled reminders (#326)
- Customize Python version. (#324)
- Fix activate method call in Python SDK (#323)
- Encode service result when invoked from actor tail call (#316, #317)
- Bug fix in actor scheduling for recovery from a blocked self-call (#318)
- Improve debug logging in message processing layer of rpclib (#319)
- Implement basic tail call from Actor to Service (#313)
- Bug fix in actor locking -- overly forgiving reentrancy bypass (#309)
- Enhancements to the Python SDK
- Support for reentrancy (#288) (#294)
- Support for async actor calls (#290) (#293)
- Support for reminders (#298)
- Support for tail calls (#296)
- Enable simple NRU-based actor placement cache (#285)
- Improvements to KAR deployment scripts
- Add support for logging stack (#301)
- Add support for metrics stack (#286) (#292)
- KAR 1.3.0 introduces several major enhancements to the programming model
- Failure recovery ensures that a retry of a failed actor invocation will not be executed until after all synchronous calls made by the failed version of the task have completed.
- Tail calls to the same actor instance retain the actor lock by default.
- Each actor's queue of incoming messages is now always processed in order.
- There is a new Python SDK.
- The legacy transport layer that predated pkg/rpc was removed.
- JavaSDK: fix @Produces annotation on Service.tell* routes in OpenLiberty sidecar (#254)
- Updated npm and maven packages to resolve CVEs (various)
- Update Kafka version to 2.8.1 (#240)
- Bump Quarkus from 2.2.3.Final to 2.4.2.Final (#232)
- Improvements in Java SDKs for getReminders (#238, #245, #246, #247)
- Improve log message for dropped tells (#249)
- Fix for default replication factor for Event Streams (#237)
- Add unit testing infrastructure and RPC library testing (#222)
- Use rpclib by default (#218)
- Add ability to control topic-level message retention (#216, #217)
- Add tail call support to rpclib, SDKs, and use in actors-dp-* examples
- Document deploying on k3d (supplanting k3s)
- Improve microbenchmarks
- Implement a cache of actor placement info for rpclib
- Implement an alternative Kafka-only RPC layer
- Port KAR runtime to new rpclib APIs
- Port KAR to new RPC library abstractions (#170)
- Promote internal/store to pkg/store (#171)
- Add alternative store.CAS implementation that returns value instead of Boolean (#173)
- New Kafka-only RPC library
- Initial import of rpclib (#174)
- Subsequent fixes (#177), (#178), (#179), (#180), (#184), (#185), (#186)
- Port KAR runtime to new rpclib APIs
- Adding a transactional framework in KAR (#167)
- Upgrade from Open Liberty 20.0.0.9 to 21.0.0.7 (#181)
- Upgrade from Quarkus 1.1.13 to 2.2.3 (#176)
- Upgrade from kafka 2.7.0 to 2.7.1 (#182)
- Fix bug introduced in 1.0.9 in redis retry logic (#172)
- Implement a Reactive Java SDK using Quarkus
- Add a retry loop around failed redis connection attempts (#163)
- Also allow controlling sidecar ports via envvar (#153)
- Move from alpine 3.11 to 3.14 for sidecar/webhook images (#151)
- Fixup kafka-bench and re-enable building it. (#150)
- Upgrade to zookeeper 3.6 and kafka 2.7 (#146)
- Upgrade to use Redis 6 (#145)
- Implement cancellation of actor calls from dead sidecars (#144)
- Simplify Java SDK initialization (#139)
- Restructure of Java SDK internals and new maven artifact names
- Add Prometheus metrics endpoint to sidecar
- Use factory to create JsonObjectBuilder and JsonArrayBuilder instances (#126)
- Update to kind 0.11.1 (#125)
- Rationalize concurrency controls for Java actor runtime (#123)
- Support for general multi-element Actor state updates (#117)
- Optimize submap operations by using HSCAN (#115, #114, #112)
- Default to Kubernetes 1.20 on kind (#110)
- Ignore docker network connect error (#109)
- Always add docker registry to kind network (#107)
- Allow millisecond granularity periods for reminders (#105)
- Support for persistent volumes and zookeeper/kafka replication (#95)
- Improve naming and documentation of timeout kar arguments (#82)
- Java SDK configuration cleanups (#81)
- Implement infinite service/actor timeout in sidecar (#79)
- Truncate large backtraces to avoid exceeding Kafka message size (#78)
- support for deploying on OpenShift 4.x (#73)
- upgrade to zookeeper 3.5 and kafka 2.6
- Add testcases for Java timeout scenario (#61, #62)
- Java SDK: infinite default timeout (#59)
First stable release