The use cases

Part 4: Architectural principles of the Assimbly project

Raymond Meester
3 min readOct 22, 2021

What are building blocks if you can’t build anything useful with them? The different kinds of integration functions, interfaces and building blocks don’t make much sense as we can’t rearrange them for various use cases. In this part we will take a look into some possible use cases for Assimbly.

Standalone

The easiest use case is to run Assimbly as standalone. We could say that in standalone mode, we deploy the complete temple with a single file:

By function

Assimbly as a standalone jar contains both the connector and broker functions. Often for production environment, it’s better to run every function separately (Separate-of-Concerns). Every function has its own jar file.

Though these are separate files, they contain everything from base to UI.

Docker container

As Assimbly is a Spring Boot application, it can just as easy be packed in a Docker container.

In this way it can run in any container cluster. Some examples where Assimbly already ran are Amazon Fargate, Apache Mesos, Docker Swarm and Azure AKS.

The Assimbly connector or broker run then in a Docker container. Most of the time also the database is running in a separate instance. MySQL, Postgres, Oracle and SQLServer are options.

Headless

The front-end and back-end can also be separated. The top building block is then not used:

In this way you can use Assimbly (connector or broker together or separate) without a user interface:

Embed within a Spring Boot application

It is also possible to not include the web server, so that connector or broker (or both) can be included into another Spring Boot application.

This is what for example Assimbly Gateway does. It’s already a Spring Boot application with a Rest API that adds the above two REST API’s into its own web application.

Embedded into a Java application

The REST API can also be removed, this leaves us with the Java API and the implementations.

These jar files can be called from any Java application like a command line, desktop or web application.

Base Libraries

Last, but not least also the base libraries can be used independently in your own project. There you can call encryption or converter utilities without using any other Assimbly modules.

Conclusion

This blog series on the architecture of Assimbly touches the various building blocks and how they can be used in your own solution. The project still has a lot of room to grow, so we invite anyone who wants to contribute to get in touch.

You can contribute just by staring at the project, bringing ideas, adding issues or creating a pull request.

We would like to invite you into the temple.

--

--