Wednesday, February 6, 2013

Tech Talk: FatFractal

In my last post, I alluded to some exciting new technologies that I had the opportunity to work with when I landed my first industry job. The client that my team was working with needed an iPhone app and a mobile web application for their start-up company, and they were utilizing the services of FatFractal for their applications' backend and data store. The power, robustness, flexibility, and ease-of-use of FatFractal was a breath of fresh air compared to the traditional Web development technologies I had been learning in the classroom.

FatFractal is a cloud-based backend that is portable across a wide variety of platforms (iOS, Android, Javascript/HTML5), and it is much more than simply a data store. It combines a robust object-oriented data store, customizable and extensible server code, application registration and deployment services (on both your local machine and the FatFractal Cloud), and other convenient baked-in services (e-mail, Facebook/Twitter integration, push notifications, transaction processing, etc.) into one tight and lightweight package. With the traditional mode-view-controller (MVC) Web development paradigm I had been taught and used in numerous class projects, I was using SQL to construct my data model and database schema from scratch, bare bones Java servlets to provide server-side functionality, and JDBC with prepared statements to populate my local objects. Often times I found myself banging my head against the wall while having to work through the intricate details of configuring these various layers and then wiring them together by hand. In that sense, FatFractal was a dream come true, because it combined all these services I needed to make a powerful application in one place while abstracting away the nitty gritty details and allowing me to focus solely on what was important: building my application.

One of the features I appreciated the most about FatFractal was how fast and simple it made defining my data model and accessing my application's data. FatFractal provides a simple and intuitive domain-specific language (DSL) which allows developers to define all the object types, attributes, permissions, and collections for their application in a single file. Relationships between objects can also be modeled simply by defining an attribute as a reference to another object or as a grabbag containing references to many objects. CRUD (Create, Retrieve, Update, Delete) operations on your data can be performed by making simple method calls through the FatFractal SDK, of which there are versions for multiple development platforms. The FatFractal SDK enables complete interoperability between local objects in your application's programming language and objects stored on your application's backend. Defining and manipulating your application's data becomes an afterthought thanks to the simplicity and abstraction provided by FatFractal.

Aside from data management, FatFractal also provides a number of other built-in services that are ready for use by your application from the start. Sending e-mails, verifying users through Facebook or Twitter, delivering push notifications on mobile platforms, processing credit card payments, and more are all available to your application through, you guessed it, simple method calls in the FatFractal SDK. Again, the details of such services are taken care of by FatFractal while your application sits back and enjoys the functionality. In addition, your application's backend is completely extensible. You can configure event handler code to fire every time a specific CRUD event is executed on your data, or define a stand-alone service that is executed by the backend any time it is called in your application code. The flexibility is endless, and as a developer, it was exciting to be able to harness the power of a system like FatFractal to perform custom services on behalf of my application.

When doing any kind of Web programming in school, one aspect of development that I always dreaded was getting my application deployed. Manually constructing and deploying WAR files and dealing with the onslaught of bugs that ensued was not how I enjoyed spending my time, so I was thrilled to find that FatFractal had this burden covered for me as well. After downloading and installing the FatFractal engine directly on your developing machine, a single command line instruction is all it takes to deploy your application locally or on the FatFractal Cloud. Local deployment is a wonderful commodity to have at your fingertips, as you can construct, tweak, deploy, and re-deploy your application as many times as you wish until you are satisfied and ready to publish it on the Cloud for all to see. Implementing and debugging new features for your application in a safe, local environment is an extremely valuable tool for any Web developer, and FatFractal nails it.

FatFratal is a rich and powerful system, and as such, this overview only scratches the surface on all that it can do. If you would like to learn more about the types of devices and platforms FatFractal supports, the infrastructure on which it is built, or any further details on the types of services it provides, I strongly encourage you to visit their website at

No comments:

Post a Comment