Architecture

Continuing with the unconventional theme, smartix is a true collection of micro services. We use AWS Lambda which provided us (and you) with many benefits. With Lambda, each function is hosted in its own virtual environment. It is impossible for a problem with one function to have any impact upon another. This significantly enhances reliability.

Another major benefit that Lambda gives us is the number of running instances of our functions are automatically scaled in response to demand. If we receive a reservation request and all our instances of the reserve function are busy, then Lambda simply fires up an additional instance. Later when demand drops, the running instances are scaled back. This is extremely cost-effective for us since we pay only for instances that are running, which means we can offer a significantly lower cost per transaction fee to you.

Concurrent versioning

Another feature that we are very proud of is that we support concurrent versions of our API. That means, when we release a new version, you are not automatically upgraded. You upgrade only when you are ready and happy with the new version. Other TIS operate a single version at a time which can - and does - cause problems with potential incompatibility with previous versions.

If a new version is released because we have introduced a new feature that you do not with to use, then there is no need to upgrade at all. This means that you have no testing requirement or obligation to update your application simply because we release new versions. This represents a significant cost saving to yourself over any other TIS

Automated error tracking

This is a great feature that we hope you will never use!

If any of our functions experiences an unexpected error then it is automatically logged for us to review. Your function call response will contain a unique error ID which you can use to track our progress fixing that issue using our online error tracking application. You will also receive emails whenever we add a comment against an error.

We can see how many times each error has occurred and which users have experience each one. We can cross reference our full logging of your function call from our error tracking application. When a fixed is deployed we simply have to mark the error as fixed in the error tracker and you are automatically notified that the fix has been deployed.

During development of a new feature it is normal for errors to occur. That is a normal part of develpment. However, it is all too easy to overlook an error during development because you are focusing on some other area of the function at the time. By having the error tracker built into our development environment, even these development errors are tracked. We only proceed to final testing and deployment of an update or new function when all such development errors have been identified and fixed.