nakadi-client: Client library for the Nakadi Event Broker

[ bsd3, library, network ] [ Propose Tags ]

This package implements a client library for interacting with the Nakadi event broker system developed by Zalando.


[Skip to Readme]

Modules

[Last Documentation]

  • Network
    • Network.Nakadi
      • Network.Nakadi.Base
      • Network.Nakadi.Config
      • Network.Nakadi.EventTypes
        • Network.Nakadi.EventTypes.CursorDistances
        • Network.Nakadi.EventTypes.CursorsLag
        • Network.Nakadi.EventTypes.EventType
        • Network.Nakadi.EventTypes.Events
        • Network.Nakadi.EventTypes.Partitions
        • Network.Nakadi.EventTypes.Schemas
        • Network.Nakadi.EventTypes.ShiftedCursors
      • Network.Nakadi.HttpBackendIO
      • Internal
        • Network.Nakadi.Internal.Http
        • Network.Nakadi.Internal.Retry
      • Network.Nakadi.Lenses
      • Network.Nakadi.Prelude
      • Network.Nakadi.Registry
      • Network.Nakadi.Subscriptions
        • Network.Nakadi.Subscriptions.Cursors
        • Network.Nakadi.Subscriptions.Events
        • Network.Nakadi.Subscriptions.Stats
        • Network.Nakadi.Subscriptions.Subscription
      • Network.Nakadi.Types
        • Network.Nakadi.Types.Config
        • Network.Nakadi.Types.Exceptions
        • Network.Nakadi.Types.Logger
        • Network.Nakadi.Types.Problem
        • Network.Nakadi.Types.Service
      • Unsafe
        • Network.Nakadi.Unsafe.IO

Flags

Manual Flags

NameDescriptionDefault
develDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.2.0.0, 0.2.0.1, 0.3.0.0, 0.4.0.0, 0.4.1.0, 0.5.0.0, 0.5.0.1, 0.5.0.3, 0.5.1.0, 0.6.0.0, 0.6.1.0, 0.7.0.0
Change log CHANGES.md
Dependencies aeson, aeson-casing, async (>=2.2.1 && <2.3.0), async-timer (>=0.2.0.0 && <0.3), base (>=4.7 && <5), bytestring, conduit (>=1.3.0 && <1.4.0), conduit-extra (>=1.3.0 && <1.4.0), containers, exceptions, hashable, http-client, http-client-tls, http-conduit (>=2.3.0 && <2.4), http-types, iso8601-time, lens, monad-control, monad-logger, mtl, resourcet (>=1.2.0 && <1.3), retry, safe-exceptions (>=0.1.7.0 && <0.2), scientific, split, stm, stm-chans, template-haskell, text, time, transformers, transformers-base, unliftio (>=0.2.4.0 && <0.3), unliftio-core, unordered-containers, uuid, vector [details]
License BSD-3-Clause
Copyright (c) 2017, 2018 Moritz Clasmeier
Author Moritz Clasmeier
Maintainer mtesseract@silverratio.net
Category Network
Home page http://nakadi-client.haskell.silverratio.net
Bug tracker https://github.com/mtesseract/nakadi-haskell/issues
Source repo head: git clone https://github.com/mtesseract/nakadi-haskell
Uploaded by mtesseract at 2018-08-21T08:59:11Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 6053 total (34 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2018-08-21 [all 3 reports]

Readme for nakadi-client-0.6.0.0

[back to package description]

nakadi-client Hackage version Stackage version Build Status

About

nakadi-client is a BSD2/BSD3 licensed Haskell client library for interacting with the Nakadi event broker system developed by Zalando. The streaming is built on top of Conduit.

Please note that the API is not considered stable yet.

nakadi-client provides:

  • Docker based test suite testing against the official Nakadi docker image.

  • A type-safe API for interacting with Nakadi. For example, the name of an event type has type EventTypeName, not Text or something generic. Correct types for values like CursorOffset are provided (which must be treated as opaque strings).

  • Integrated and configurable retry mechanism.

  • Conduit based interfaces for streaming events.

  • Support for temporary subscriptions.

  • Convenient Subscription API interface (subscriptionProcess & subscriptionProcessConduit), which frees the user from any manual bookkeeping.

  • Mechanism for registering callbacks for logging and token injection.

Example

Example code showing how to dump a subscription:

dumpSubscription :: (MonadLogger m, MonadNakadi IO m) => Nakadi.SubscriptionId -> m ()
dumpSubscription subscriptionId =
  Nakadi.subscriptionProcess Nothing subscriptionId processBatch

  where processBatch :: MonadLogger m => Nakadi.SubscriptionEventStreamBatch Value -> m ()
        processBatch batch =
          logInfoN (tshow batch)