Architecture

Components and Grouping

Archipelago components encapsulate discrete elements of functionality. Components can support state or be stateless, they accept messages and process these messages asynchronously in delivery order. A component can, depending on message type, contents and component state, alter it's state (if any) and optionally send messages to other components.

Homogeneous groups of components form logical cells, allowing a direct potential to exploit concurrency via managed distribution. Cells are logical functional equivalents of their contained components and are the endpoints of the wiring process defining the structure and flows of the next level of composition, reactors.

Reactors are a logical grouping of cells, simple Directed Acyclic Graphs (DSGs). Reactors define discrete functional flows (processing streams) and are effectively subsystems which in themselves can be composed into higher level subsystems or as entire systems.

Composition

Archipelago exploits composition at every level. This means that we benefit from reuse and simpler abstractions which can be viewed and manipulated at different levels depending on the context or the degree of expressiveness we require.

Levels of reuse commonly found in conventional OOD development are vastly exceeded when FP techniques, a stronger more expressive type system and concise expressive DSLs and configuration languages are combined.

Having a component based approach means that there is strong encapsulation and semantic identity associated both at the basic component level and in the compound structures built from basic components. At all levels there is the potential to customize and extend behaviour in a non-destructive, intuitive and trackable fashion.

Compound structures are robust logical definitions, their physical mapping may result in components co-located on the same JVM instance, on the same physical or virtual server node, spanning a cluster or network or even remaining dormant and persisted awaiting activation in any of these spaces.

Expressiveness

We rely heavily on our choices of languages, libraries and technologies and one of the most important characteristics we look for is expressiveness. If we cannot express the concepts, data and algorithms of our design effectively we immediately disadvantage ourselves. If our work cannot be read and understood easily, concepts become weakened and interpretation becomes harder, forcing us to continuously read, comprehend and reconsider. The artifacts we create must be self documenting and contribute to system as a whole.
Small code and config sizes are a matter of pride for us.

Contact us

Do you have any question? Ask us.

Address:

EileanTech LTD
75 Hamilton Drive
Glasgow, G12 8DH

Phone:
+44(0)1412550189

Discover EileanTech

EileanTech is a technology company dedicated to providing elegant high performance software, services and systems.

We realised that a number of recent technologies and methodologies had converged to provide huge potential for rapidly building robust, expressive, scalable systems. We want to exploit this change in the development landscape to empower our clients when creating, expanding or renovating their systems and IT products.

Do you want to know more?

Accept We use cookies to improve your experience. By your continued use of EileanTech.com website you agree to our use of cookies according to our cookies policy. You can review more information about cookies here.