packages feed

aws-kinesis-client-0.4.0.1: CHANGELOG.md

### v0.4.0.1

This release fixes a bug in the Consumer where a saved state could get
clobbered in case no further records were found at the restored point on a
shard.

### v0.4.0.0

This release contains breaking changes.

- Replaced the internal use of `MonadError` with proper open-world exceptions.
  The exposed operations which may throw exceptions have been adjusted to
  return `m (Either e a)`; resolves [issue
  \#17](https://github.com/alephcloud/hs-aws-kinesis-client/issues/17).

- [Producer] Implemented a cleaner shutdown routine policy: previously, the
  producer would stay alive indefinitely until the thread on which it was
  created is killed. Now, the producer is shut down immediately once the scope of
  `withKinesisProducer` exits, at which point the queue will be flushed according
  to a configurable (and optional) timeout. Resolves [issue
  \#19](https://github.com/alephcloud/hs-aws-kinesis-client/issues/19).

- [Producer] Restructured the monolithic error sum types into many smaller
  types to better support the standard mode of use for error handling.

- [Consumer] Removed unused `ConsumerError` type.

- [Consumer] Changed batch size to use `Natural` type rather than `Int`.

- [Producer] Parameterized the implementation by an arbitrary queue structure;
  by default, the producer's message queue is now implemented using `TBMChan`
  to avoid a bug in `TQueue` which causes live-locking under very heavy load.

Other non-breaking changes:

- [Producer] A better, more reliable implementation of consuming the input
  queue in chunks.

- Removed dependencies on `either`, `errors`, `hoist-error`, `stm-conduit`;
  added dependency on `enclosed-exceptions`.

- Increased lower bound on `monad-control` to 1.0 (for hygienic purposes).

### v0.3.0.2

- Upgrade aws-general, aws-kinesis lower bounds.

### v0.3.0.1

- [Producer] Write errors to stderr rather than stdout.

- [Consumer CLI] Exit with a failure code (1) when the run is not considered
  successful (i.e.  if a limit was specified, and the CLI failed to retrieve
  that many records).

### v0.3.0.0

All changes were in the Producer client.

- Do not retry messages indefinitely; add support for a configurable retry
  policy.

- Reject messages synchronously which exceed the Kinesis record size limit.

### v0.2.0.3

All changes were in the Consumer CLI.

- Add a --timeout option, which will cause the consumer CLI terminate after a
  specified number of seconds.

- Change the behavior of --save-state to only save the state when a run of the
  consumer CLI was successful (i.e. either no limit was specified, or the
  precise number of items requested was indeed retrieved within the alotted time).


### v0.2.0.2

- Upgrade to newer versions of `aws-general` and `aws-kinesis` which support the
  security token header (necessary for using credentials from EC2 instance
  metadata). The --use-instance-metadata option should now work properly.

- When --restore-state is passed with a non-existent file, it will be ignored;
  if it is passed with a malformed file, an error will be thrown; the old
  behavior was to throw an error in either case.

### v0.2.0.1

All changes were in the Consumer CLI.

- Add switch to get credentials from EC2 instance metadata,
  --use-instance-metadata

- Make --limit optional to consume indefinitely

- Allow custom region with --region

- If the CLI is terminated for any reason, before shutting down it will record
  its state if --save-state is passed


### v0.2.0.0

- [Consumer] Add the ability to save & restore stream state (i.e. last consumed
  sequence number per shard).

- [Consumer CLI] Add --save-state, --restore-state options

### v0.1.0.2

- Support specifying AWS keys as options to the CLI (either directly or from a
  file). You must specify one of these options.

- Remove filtering & date range capabilities from the CLI; remove `--raw` option,
  which will now be the only behavior.

- Fix CLI to print unescaped strings.

### v0.1.0.1

- Add some throttling to the consumer loop to avoid rate limiting
- Relax the lower-bound on `monad-control`
- Upgrade to `lens-4.7`, add `lens-action` dependency

### v0.1.0.0

Initial release