Introduction

The goal of this guide is to accelerate new Documents Generator developer on-boarding by providing information about how to use documents generator.

Athena documents generator is a lightweight solution providing enterprise scale documents generation services. Documents generator is pre-integrated with other Athena services like journey engine and policy admin API’s.

Key concepts

  • Document - document generated for particular user. Typically stored in document management system.
  • Communication - communication generated for particular user. Typically stored in customer relationship management system.
  • Template - generic description of document or communication with placeholders for dynamic information what will be inserted during document generation.

Usage

PlantUML SVG diagram

Components

Documents generation API

Allows to request generation of a particular document. Document formats supported “out of the box” are:

  • PDF
  • MS Word (*.docx)
  • OpenOffice Writer (*.odf)
  • Email
  • SMS

In each document generation request API consumer needs to pass document template ID along with data set what needs to be used to resolve dynamic parts of the template.

Supports both synchronous and asynchronous document generation. Whenever it is acceptable by business process (i.e. documents shouldn’t be displayed to user immediately) it is recommended to use asynchronous document generation as user won’t need to wait until actual generation finishes.

Template repository

While this is an abstract term and in theory implementation can by different by default template repository is simply a folder what contains document templates for particular solution and is deployed along with the document generator.

Typically this folder is also stored in solution source control management system so that every single change in the templates is auditable and documents follows same release process as overall solution.

Documents generation queue

Documents generation queue maintains information about all documents what are scheduled to be generated. By default Athena documents generator is using Apache ActiveMQ, however it can be extended to use other queue solutions as well.

Documents generation worker

Documents generator worker does the “heavy lifting” of actually generating all documents and storing them when and where required. Documents generator worker is able to retry document generation in case of failure (for example, SMS gateway being temporary down, etc.).

Generation workers can be scaled separately from other document generator components.

Documents management and CRM API’s

While not integral part of document generator it is worth to mention these API’s as every document/communication is stored using one of these API’s. Both API’s can be subsequently used by user self-service portals and customer support systems to provide users of those solutions with insight on interaction with teh customer.

Extensibility

There are several ways how to extend the documents generator. The most used obviously is supplying document generator with document templates required for the particular solution.

Besides that document generation have SDK allowing to implement custom solutions for document generation (for example - push notifications or SMS generation using different SMS gateway than the defualt).

Finally, while not practical in general case, it is possible to provide solution specific implementations for document repository and queue integrations.

Scaling and performance

Memory

There are no long living memory intense web sessions or background jobs. All document generator components are stateless.

CPU

Documents generator can be scaled horizontally without any additional configuration. All document generator API and worker instances share same queue instance and are disposable.

Disk

There is no permanent persistent data stored on a node instance.

License

Athena License, Copyright by Knowledgeprice