Beco has a steady flow of new and exciting products and ideas. From our patented Battery-Free Beacons to our first and best in class hyper-local data stream, Beco is pushing the limits of indoor location analytics to give our customers access to data that has never existed before. The possibilities are endless.

Scrolling through our blog, you’ll get a good sense of “what” is going on at Beco. This article – the second in a series that started with a deep dive into our patented Beacon technology – addresses the “how” of what is going on at Beco. We want to give you a window into the inner workings of the system that churns out a novel spatial data stream.

At its core, the Beco system is driven by four main pieces: battery-free beacons, mobile SDK, web-based dashboards, and cloud SaaS backend. That last element – the cloud SaaS backend – sounds esoteric, but it sits right at the center of the Beco system. It’s the backend cloud-based service that stitches everything together and delivers data out to our customers.

The backend is designed as a set of 12-factor applications, to take advantage of the latest cloud technology.  We utilize Java and the amazing Spring Framework to develop our µservice based infrastructure. The pairing of Java and Spring is the most mature, robust and widely adopted enterprise-class software stack available today. Software engineering best practices, code maintenance and test-driven development are all critical.

Beco is fundamentally an IoT system. This starts with our core set of  µservices that allow us to build the pieces we need, as we need them and scale them out appropriately. One thing we don’t want to do is over-build: customer requirements evolve over time and we want to support our customers with quick responses to new features. The phrase that gets tossed around our software team is “pragmatic perfectionists.” Everyone is here because they’re obsessed with getting it right… but if we find a better tool for the job, we’ll jump right into it.

Big Data starts with picking the right database structure for storing the millions of location updates streaming into the Beco platform from mobile handsets all over the world. At Beco, this starts with PostgreSQL (postgres). From small metadata tables with a few hundred rows to massive live-stream data tables, Postgres is a workhorse. Add to that an amazing feature set, from PostGIS geo-spatial intelligence, to JSON and HSTORE and the ability to shard-out with Postgres-XL, we think we’ll be using Postgres for years to come.

Then there is also the need to process and present massive volumes of historical data to our customers in clear and concise ways. For high volume output at scale (especially for time-series data), we chose Apache Cassandra. While the query model of Cassandra requires more upfront understanding of your data than Postgres, the lightning fast writes, and with the correct schema, reads makes it our NoSQL Big-Data store of choice. Cassandra allows us to generate meaningful visualizations, charts and other analytical information about our raw data stream. Once in Cassandra, we utilize all the typical big-data tools, i.e. Spark, and the Hadoop Eco-system (Drill, Hive, Pig, MapReduce, etc.), to answer the hard questions.

All said, we are continuing to ask big questions about the massive data sets we are assembling and we are continuing to build out new services to solve our enterprise customers’ toughest challenges.

Want to learn more? Or are you interested in joining our development team? Email us at: hello@beco.io