Sync’ up! … without getting drained

feb 1

Introducing ikura workers

N.B. This post is deprecated. For archival purposes, it remains here, but generally, it ought to be disregarded by readers.

What’s important when coming to ikura for the first time, is understanding some terms & getting comfortable with the basics.

First, in order to talk about things, let’s get to know names.

To use ikura, your web application needs resources — URI end-points that execute the work you want to be performed at some interval.

So, let’s say you have a script that lives at ‘https://foobar.net/cohort-new.json’; the following is what ikura digests that as:

  1. ‘https://foobar.net’ is the pool
  2. ‘/cohort-new.json’ is one of that pool’s channels

The relationship between the two isn’t complicated, but there is some things to know about both parts.

Pools

Quite simply, a valid pool is just the protocol (‘http’ or ‘https’) & host (minus any path like ‘/’). It can be an IP, a domain with any number of sub-domains, and of course you can specify any ports. Once a pool has been created, it can have as many channels as you’d like. You can think of a pool as the parent, with the children being the channels. For anyone familiar with Rails conventions, a pool has_many channels, and a channel belongs_to a pool.

Channels

The valid structure of a channel is quite liberal; so long as a channel leads with a forward-slash (e.g. ‘/path/baz.d’), then you’re in the clear. Channels require a timing component assigned to them. For example, you may want your channel to be called every five minutes; or randomly within each hour from nine-to-five in order to simulate a slight human-like behavior. It’s up to you.

So, a pool combined with a channel comprises one of your web-application’s resources.

Activation

By default, once a channel & parental pool is created, the ikura worker is inactive for your protection. The ikura worker won’t be started until you activate it via toggling the obvious ‘checkbox’ next to it. Once you do, ikura will call that resource reliably, forever, until you toggle it inactive once more.

Wrapping up

So, that’s the breakdown of the most basic ikura set-up. This shouldn’t be difficult to get correct, but we wanted to spell it all out, here, nonetheless.