As a new junior developer, many of my friends and colleagues have given me advice about the craft of coding. One of the best pieces of advice I’ve received is to “build something every day, no matter what.” It’s not about what you build, but rather how you think, my mentors tell me. Solving problems regularly keeps your brain active and ready to attack when you are stumped on a real function within a project. I decided to get started with Orchestrate to see how it could help with rapid building.
Building something every day was easy when I was as student at Epicodus. Now that I’m an independent developer, building something every day is a little more challenging, but not for lack of motivation. Instead, there are simply too many exciting things to work on. If you’re like me, you want to learn everything and do everything during an afternoon hacking at a coffee shop. But it’s just not possible, and so more half-finished projects than I like to admit languish in my GitHub repos.
Enter Orchestrate. I’ll be writing a two part series about my project, with the goal of helping other junior developers learn how to use Orchestrate in their next projects. This post will discuss my methods for digging into the product and becoming familiar with how it works. The second post in this series will introduce and discuss my finished project, a recipe search app. So without further ado, let’s dive in!
What is Orchestrate? I have used databases and I’ve used APIs. Simply put, Orchestrate is a database as a service, delivered as an API. As a developer, you can hit the Orchestrate REST API to send and retrieve your app’s data. Orchestrate will handle security, monitoring, and backups for you.
Specifically, Orchestrate allows you to store data in schema-less key/value objects. The feature that I’m most excited about is full-text search. With just one call to the API, your app is able to search through all of your objects. For more experienced developers, the product really shines when it comes to social features like friend relationships and event feeds. You might also be interested in the technology behind the databases, but you don’t need to know anything about that to use Orchestrate.
As I started familiarizing myself with Orchestrate, here are some terms I found useful to understand:
- Applications are top level projects. If you are working with multiple folks on a project, each member of your team will have the ability to use and manage API keys to access your application’s data.
- Collections are simply JSON objects, grouped together. Think of collections like Amazon S3 buckets.
- API Keys. If you don’t know what API keys are and how to keep them secure, now is the time to brush up on that, young padawan. Your API key will tell your Orchestrate application who you are, and allow you to access API data from your front-end app. Don’t make a rookie mistake and commit your keys in a file for all to see in a public GitHub repo!
- Key/Values are the building blocks of Orchestrate. Collections consist of key/value pairs that will help you create and work with relations within your data.
- Search allows you to query key/value pairs.
- Events are special objects ordered by time. Events have a collection, type, and value.
- Relations are links between key/value pairs that are unidirectional.
As a junior developer, digging into the Orchestrate documentation was refreshing because the team has laid out everything you need to know in a well-organized way. In other words, don’t skip the docs! Learning about any API for the first time can be intimidating for new developers. Now that you have the basics of Orchestrate down, it’s time to read the docs. The important thing to remember is that documentation there to help you. As a student at Epicodus, I made a lot of newbie mistakes that cost me a lot of time because I would skim over gem READMEs instead of taking the time to follow the directions in the documentation. That said, not all READMEs are good READMEs.
Once you’ve read the docs, it’s time to prepare your app. First, you need to select the language that you’ll be working with. Orchestrate has official clients for a number of languages. My project will use the recently released Ruby gem. Clients provide the code needed to interact with the API, though you can always use direct HTTP requests, instead.
For my Orchestrate app, I’m going to leverage the power of full-text search by creating a recipe app that will allow me to create, store, and find recipes. It’s a simple idea that will help me focus on specific features while allowing me to learn.
You can follow along, so sign up for Orchestrate and build your first app, too.