Poor man’s distributed locking

One of my prior posts on the async processing service mentioned a distributed locking mechanism. This post touches on that implementation. The short version: the client had no existing distributed locking infrastructure; no Hazelcast, no Redis, no Zookeeper, nothing. What they did have was Postgres, which was already in use. That turned out to be … Continue reading Poor man’s distributed locking

Simple pattern for an asynchronous processing service

The use case was straightforward: a backend service needed to receive document submissions and forward them to one or more document manager endpoints. Document managers accepted documents, processed them, and stored them. Documents could have been submitted by other systems independently, so the service had to account for the possibility that any given document was … Continue reading Simple pattern for an asynchronous processing service

Docker container peer IP discovery with Swarm services

  When running applications deployed as a docker "service" within Docker Swarm (post 1.12 swarm mode), often those application's have the need to discover their peer containers for purposes such as forming a cluster. Similar to "service discovery", I'll just use the term "peer discovery" for this use-case. The simple example is as follows: You … Continue reading Docker container peer IP discovery with Swarm services

Docker container IP and port discovery with Consul and Registrator

Do you use Docker? Does your containerized app have the need to discover both its own IP and one or more mapped ports? How can another container access my exposed ports and how can I do the same of my peers? As it stands today, simple self discovery of your container's accessible IP and one … Continue reading Docker container IP and port discovery with Consul and Registrator

Reactive re-engineering with Akka

Everyone once in a while during the life cycle of any given piece of software comes that time where you have the opportunity to improve it in a major way....if that is, its lucky enough to still be in production. One particular system I've been involved with is responsible for processing a lot of data … Continue reading Reactive re-engineering with Akka

Hazelcast discovery with Etcd

I've used Hazelcast for years and have generally relied upon the availability of multicast for Hazelcast cluster discovery and formation (within a single data-center). Recently was faced with two things, expand the footprint into a non-multicast enabled data-center and secondly pre-prep the service for containerization where nodes will come and go as scaling policies dictate … Continue reading Hazelcast discovery with Etcd

Hazelcast discovery with Consul

I've used Hazelcast for years and have generally relied upon the availability of multicast for Hazelcast cluster discovery and formation (within a single data-center). Recently was faced with two things, expand the footprint into a non-multicast enabled data-center and secondly pre-prep the service for containerization where nodes will come and go as scaling policies dictate … Continue reading Hazelcast discovery with Consul

Generating Java classes for the Azure AD Graph API

NOTE: I've since abandoned this avenue to generate pojos for the GraphAPI service. The Restlet Generator simply has too many issues in the resulting output (i.e. not handling package names properly, generics issues, not dealing with Edm.[types] etc). However this still may be of use to someone who wants to explore it further Recently had … Continue reading Generating Java classes for the Azure AD Graph API