Can't choose CPAN namespace

So... I've got this set of modules I've been going to opensource for more than a year now. Strangely, main obstacle is a choice of namespace.

Internally, they are called Stream::*. It is multi-layered set of classes with common interfaces, from low-level Stream::File / Stream::Log / Stream::MemoryStorage, to more complex Stream::Queue (local file-based queue supporting multiple parallel clients). Also, there are functional-style filters, catalog which can construct stream objects by their name, pumpers connecting input and output streams, multiplexing, and a lot of abstractions, base classes and roles...
Together, they assist in implementing complex asyncrohous, realtime and possibly distributed data processing.
By now, i think the paradigm I'm trying to implement is called a Flow-based programming, but until recently, I've mostly been thinking in terms of this image:
flow.png
Anyway. I'll have a chance to talk about it later when this code will become public.

Any hints about namespace?
I don't like Stream::* that much, and there is a Stream-Reader in that namespace already.

3 Comments

I just open sourced something and was in a similar position.

I would suggest Log::Stream, File::Stream, App::Reader::Stream, and Cache::Stream.

I'd suggest you focus on getting an early release out first: what's the cornerstone functionality that ties all of your modules together? Which one of your modules could be uploaded on its own? Can you break your modules down into several discrete distributions? If you could, then look for current CPAN namespaces where they may fit separately and rebless them, case-by-case.


On the other hand, if you consider it a framework of some sort, just pick a title from a rock song you like and big-bang it into PAUSE. "EvenFlow::" from Pearl Jam could make a good fit. ;)

Leave a comment

About Vyacheslav Matyukhin

user-pic I wrote Ubic. I worked at Yandex for many years, and now i'm building my own startup questhub.io (formerly PlayPerl). I'm also working on Flux, streaming data processing framework. CPAN ID: MMCLERIC.