elastic blog


elastic blog

Use case: Launch Falcon 9

Learn how to build a simple rocket launch process using Elastic Forms and Microsoft Flow, and NASA API

Rafał HryniewskiRafał Hryniewski

Elastic Forms application is part of our bigger project called Elastic Workplace, our main intention so far was automating business processes, making them faster and get rid of unnecessary paperwork. Since planet Earth is actually a small one we’re thinking bigger, we’re thinking space.

Lately, we’ve shown you an example of combining Elastic Forms with Microsoft Flow to make simple process of requesting holidays even simpler. Flow allowed us to integrate our API with other available APIs with ease and to chain them as we see fit. All of that without customizing our application at code level!

Since it’s so easy we’ve looked for other ways to use that and incredible things we could do. Our main goal was controlling something, maybe some small IoT? Someone laughed “How about controlling the world?” and a few seconds later our CEO replied “World? How about space?!”. That made us thinking.

Let’s conquer the space!

We’ve had this idea in our heads until someday we’ve gone to NASA webpage and seen that they have some public APIs. After quick brainstorming, we’ve explored those APIs and discovered we could hack our way to API that controls launching of Falcon 9.

Top secret API definitions found on NASA homepage

This API was pretty simple, after all, how complicated it could be if we’ve already sent people to the moon almost 50 years ago? We’ve just needed some authentication which we’ve hacked anyway, alpha angle, mission time, name and simple boolean to indicate that rocket should land on a barge or not. 

This infographic shows the plan of the whole mission

We’re really fond of Elon Musk’s work so we’ve decided to help him. Since we’ve heard somewhere that it’s easier to ask for forgiveness that to ask for permission we’ve used our hacked access to top secret NASA API without telling anyone and we’ve started working on it. After that, we’ve wanted to present ready to go and working solution.

Connecting with mission control

First things first, we’ve needed some input to pass parameters into API. We’ve decided our form with the conversational interface is a way to go in this case. After all, it’s fast, reliable and pretty simple. 

Look at the video below to see how we’ve made this form in less than 5 minutes using Elastic Forms:

Our form was ready so now we’ve proceeded to connect it with NASA API. Sadly Microsoft Flow hasn’t had NASA connectors. But we were able to connect to it anyway using basic HTTP block. We’ve specified some conditions and notifications, first of all, we’ve checked if someone confirmed mission, then we’ve double checked for that in mission control by email.

If everything was confirmed we’ve sent HTTP request to NASA API, notified Elon musk about the launch and subscribed to webhook which will return mission status after mission will finish. Now we’ve just waited for a webhook response and sent SMS notification about status to Elon. As we all know today, the mission ended successfully. Below is Flow which we’ll be used to orchestrate entire process.

Mission control using Microsoft Flow

And … it’s done!  As I’ve mentioned we know today that mission finished with great success.

Confirmation from Elon Musk

Below you can see the video showing how everything looked during filling in mission launching form.

"It sounds unbelievable, doesn’t it? Of course, we haven’t launched anything into space, not yet at least. And we haven’t hacked NASA (not that we would admit to it). But today’s possibilities are infinite and we’re limited only by our imagination and creativity.

Simple solutions combined with lots of other simple solutions gave us the ability to create complex solutions that would need dozens or hundreds of hours a few years ago. There are no limits now."

— That's All Jokes. Happy April Fools'!

I'm developer at Elastic Cloud Solutions. After hours I'm passionate .NET Dev, blogger and speaker. I love playing with cloud, distributed systems, actor model and databases.

Comments 0
There are currently no comments.