Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

A Completely Thread-Safe ZeroMQ Socket Interface for Scala

DZone's Guide to

A Completely Thread-Safe ZeroMQ Socket Interface for Scala

Free Resource

Modernize your application architectures with microservices and APIs with best practices from this free virtual summit series. Brought to you in partnership with CA Technologies.

A great tool for messaging-oriented architectures just appeared on GitHub.  A thread-safe ZeroMQ socket interface for Scala simply called "scala-zeromq" has been shared by the dev team at the video stream management company, mDialog.  Here's the introduction from GitHub:

scala-zeromq facilitates communication using the ZeroMQ messaging library. ZeroMQ is a message-oriented socket communication library that support several high-level messaging patterns, including request-reply, publish-subscribe and push-pull. For a thorough description of how ZeroMQ works, read the guide.

Unlike many ZeroMQ libraries, scala-zeromq provides a completely threadsafe ZeroMQ socket interface. All socket communications are conducted using an immutable handle called a SocketRef. Under the hood, scala-zeromq uses Akka to ensure all socket interactions are handled safely and efficiently.


Although Akka already provides its own ZeroMQ extension, some say it has design problems and it is not completely thread-safe.  This is definitely worth a look if you're working with Scala and Akka.

 

The Integration Zone is proudly sponsored by CA Technologies. Learn from expert microservices and API presentations at the Modernizing Application Architectures Virtual Summit Series.

Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}